Pergunta : O alimentador do erro de VBA quando primar a folha não existe

O bloco de código abaixo das folhas específicas das importações de 3 limas diferentes de Excel em uma tabela.  o

For cita como exemplo onde Year1.xlsx não retira, fogos de uma mensagem de erro (`1004 do erro Run-time').  Eu estou procurando uma maneira de executar um alimentador do erro que se opere a este efeito: o

If que uma folha particular de Excel não existe (por exemplo `Year2.xlsx'), a seguir não executa o código na folha seguinte de Excel alistada no myPath = na disposição do `…'  o

If que nenhumas das folhas existem listado no myPath = na disposição do `…', a seguir ateiam fogo a este código: class= " lineNumbers " >
1 do >
MsgBox as “do " prettyprint " do class= de " codeSnippet794801 do id= do >
 " desobstruído " de 
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
class= ImportExcelSheets secundário >Public " notpretty " do id= " codeSnippet794316 " do
           
class= do

Resposta : O alimentador do erro de VBA quando primar a folha não existe

usar isto

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 secundário público ()
myPath não ofuscante (), j, iCnt como o inteiro
myPath = disposição (“\ \ serverName \ Year1.xlsx”,” \ \ serverName \ Year2.xlsx ", “\ \ serverName \ Year3.xlsx”)
Para j = LBound (myPath) a UBound (myPath)
    
se dir ("" do mypath (j)<>) então

Ajustar o objXL = o CreateObject (“Excel.Application”)
    myPath de objXL.Workbooks.Open (j), verdadeiro
    Com objXL
        Para i = 1 a. Worksheets.Count
            Se InStr (. Folhas (i). Nome, “widget”) então
            acImport de DoCmd.TransferSpreadsheet, acSpreadsheetTypeExcel12, _
             “tableName”, myPath (j), verdadeiro. Folhas (i). Nome &”! A: M "
            Terminar se
        Em seguida
    Extremidade com
    objXL.Quit
    Ajustar o objXL = nada

    mais
    iCnt=iCnt + 1
terminar se
Em seguida
se icnt=3 então
Folhas de MsgBox as “não existem. Retirando o submarino agora! ”, vbInformation, “erro”
retirar o submarino
terminar se 

Terminar o submarino
 
Firmar HighlightingOpen em WindowSelect novo todo
Outras soluções  
 
programming4us programming4us