Question : Le traiteur des erreurs de VBA quand exceler la feuille n'existe pas

Le bloc de code au-dessous des feuilles de travail spécifiques d'importations à partir de 3 dossiers différents d'Excel dans une table.  le

For cite où Year1.xlsx ne sort pas, les feux d'un message d'erreur (`1004 d'erreur d'exécution').  Je recherche une manière de mettre en application un traiteur des erreurs qui fonctionnerait à cet effet : le

If qu'une feuille particulière d'Excel n'existe pas (par exemple `Year2.xlsx'), puis n'exécute pas le code sur la prochaine feuille d'Excel énumérée dans le myPath = la rangée de `…'  le

If qu'aucune des feuilles n'existe énuméré dans le myPath = la rangée de `…', puis met le feu à ce code : class= " lineNumbers " >
1 de >
MsgBox les « de " prettyprint de class= " de " codeSnippet794801 " d'id= de >
 " clair " de 
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
class= ImportExcelSheets secondaire >Public " notpretty " de l'id= " codeSnippet794316 " de
           
class= de

Réponse : Le traiteur des erreurs de VBA quand exceler la feuille n'existe pas

employer ceci

1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
ImportExcelSheets secondaire public ()
Faible myPath (), j, iCnt comme nombre entier
myPath = rangée (« \ \ serverName \ Year1.xlsx », » \ \ serverName \ Year2.xlsx ", « \ \ serverName \ Year3.xlsx »)
Pour j = LBound (myPath) à UBound (myPath)
    
si dir "" (de mypath (j)<>) alors

Placer l'objXL = le CreateObject (« Excel.Application »)
    myPath d'objXL.Workbooks.Open (j), vrai
    Avec l'objXL
        Pour I = 1 à. Worksheets.Count
            S'InStr (. Feuilles de travail (i). Nom, « gadget ») puis
            acImport de DoCmd.TransferSpreadsheet, acSpreadsheetTypeExcel12, _
             « tableName », myPath (j), vrai. Feuilles de travail (i). Nom et » ! A : M "
            Finir si
        Après
    Extrémité avec
    objXL.Quit
    Placer l'objXL = rien

    autrement
    iCnt=iCnt + 1
finir si
Après
s'icnt=3 alors
Feuilles de travail de MsgBox les « n'existent pas. Sortant le sous-marin maintenant !  », vbInformation, « erreur »
sortir le sous-marin
finir si 

Finir le sous-marin
 
Basculer HighlightingOpen dans nouveau WindowSelect tout
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us