Cuestión : El tratante del error de VBA cuando sobresalir la hoja no existe

El bloque de código debajo de las hojas de trabajo específicas de las importaciones a partir de 3 diversos archivos de Excel en una tabla.  el

For cita como ejemplo donde Year1.xlsx no sale, los fuegos de un mensaje de error (`1004 del error Run-time').  Estoy buscando una manera de ejecutar a un tratante del error que funcionaría a este efecto: el

If que una hoja particular de Excel no existe (e.g. el `Year2.xlsx'), después que no ejecuta el código en la hoja siguiente de Excel enumerada en myPath = arsenal del `…'  el

If que ningunas de las hojas existen mencionado en myPath = arsenal del `…', después que encienden este código: class= " lineNumbers " >
1 del >
MsgBox las “del " prettyprint del class= " de " codeSnippet794801 " del id= del >
 " claro " de 
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
class= ImportExcelSheets secundario >Public " notpretty " del id= " codeSnippet794316 " del
           
class= del

Respuesta : El tratante del error de VBA cuando sobresalir la hoja no existe

utilizar esto

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 secundario público ()
myPath dévil (), j, iCnt como número entero
myPath = arsenal (“\ \ serverName \ Year1.xlsx”,” \ \ serverName \ Year2.xlsx ", “\ \ serverName \ Year3.xlsx”)
Para j = LBound (myPath) a UBound (myPath)
    
si dir "" (del mypath (j)<>) entonces

Fijar el objXL = CreateObject (“Excel.Application”)
    myPath de objXL.Workbooks.Open (j), verdad
    Con el objXL
        Para i = 1 a. Worksheets.Count
            Si InStr (. Hojas de trabajo (i). Nombre, “aparato”) entonces
            acImport de DoCmd.TransferSpreadsheet, acSpreadsheetTypeExcel12, _
             “tableName”, myPath (j), verdad. Hojas de trabajo (i). ¡Nombre y”! A: M "
            Terminar si
        Después
    Extremo con
    objXL.Quit
    Fijar el objXL = nada

    
    iCnt=iCnt + 1
terminar si
Después
si icnt=3 entonces
Hojas de trabajo de MsgBox las “no existen. ¡Saliendo el submarino ahora! ”, vbInformation, “error”
salir el submarino
terminar si 

Terminar el submarino
 
Accionar la palanca de HighlightingOpen en nuevo WindowSelect todo
Otras soluciones  
 
programming4us programming4us