Vraag : De Manager van de Fout VBA wanneer blad uitblink bestaat niet

Het blok van code onder invoer-specifieke aantekenvellen van 3 verschillende dossiers van Excel in één lijst.  instanties

For waar Year1.xlsx niet weggaat, een foutenmeldingsbranden (Run-time fout `1004').  Ik zoek een manier om een foutenmanager uit te voeren die met deze inhoud zou werken:

If een bepaald Blad van Excel bestaat niet (b.v. `Year2.xlsx'), dan de code inzake het volgende die blad uitvoeren van Excel in `wordt vermeld myPath = Serie…'  

If geen van de bladen er bestaat vermeld in `myPath = Serie…', dan brand deze code:
1:
MsgBox „Aantekenvellen bestaan niet. Weggaande sub nu! “, vbInformation, „Fout“
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
Public SubImportExcelSheets ()
Schemerige myPath (), j
myPath = Serie („\ \ serverName \ Year1.xlsx“,“ \ \ serverName \ Year2.xlsx ", „\ \ serverName \ Year3.xlsx“)
Voor j = LBound (myPath) Aan UBound (myPath)
    
    
Reeks objXL = CreateObject („Excel.Application“)
    objXL.Workbooks.Open xlPath, Waar
    Met objXL
        Voor I = 1 aan. Worksheets.Count
            Als InStr (. Aantekenvellen (I). Naam, „widget“) toen
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tableName“, myPath (Waar j). Aantekenvellen (I). Naam &“! A: M "
            Eind als
        Daarna
    Eind met
    objXL.Quit
    Reeks objXL = niets

Daarna

Sub van het eind

Antwoord : De Manager van de Fout VBA wanneer blad uitblink bestaat niet

gebruik dit

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:
Openbare SubImportExcelSheets ()
Schemerige myPath (), j, iCnt als geheel
myPath = Serie („\ \ serverName \ Year1.xlsx“,“ \ \ serverName \ Year2.xlsx ", „\ \ serverName \ Year3.xlsx“)
Voor j = LBound (myPath) Aan UBound (myPath)
    
als dir (mypath (j))<>"" toen

Reeks objXL = CreateObject („Excel.Application“)
    objXL.Workbooks.Open myPath (Waar j),
    Met objXL
        Voor I = 1 aan. Worksheets.Count
            Als InStr (. Aantekenvellen (I). Naam, „widget“) toen
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tableName“, myPath (Waar j). Aantekenvellen (I). Naam &“! A: M "
            Eind als
        Daarna
    Eind met
    objXL.Quit
    Reeks objXL = niets

    anders
    iCnt=iCnt + 1
beëindig als
Daarna
als icnt=3 toen
Aantekenvellen van MsgBox de „bestaan niet. Weggaande sub nu! “, vbInformation, „Fout“
uitgangs sub
beëindig als 

Beëindig Sub
 
Voorzi HighlightingOpen in Nieuwe WindowSelect van een knevel allen
Andere oplossingen  
 
programming4us programming4us