Excel VBA Macro打开工作表,如果找不到则忽略

时间:2019-04-04 08:09:31

标签: excel vba

我有一个宏代码,一个接一个地打开几个excel工作表(我在这里只显示3个):

Sub Macro1()

    Workbooks.Open Filename:=Range("F19").Value, UpdateLinks:=0
    ActiveWindow.Visible = True
    Windows("Data Quality Checks - ITS v2.8.xlsm").Activate

    Workbooks.Open Filename:=Range("F21").Value, UpdateLinks:=0
    ActiveWindow.Visible = True
    Windows("Data Quality Checks - ITS v2.8.xlsm").Activate

    Workbooks.Open Filename:=Range("F23").Value, UpdateLinks:=0
    ActiveWindow.Visible = True
    Windows("Data Quality Checks - ITS v2.8.xlsm").Activate

End Sub

“范围”显示具有特定文件路径的单元格。 当前,如果宏找不到文件之一,它将产生错误,并且进程将被迫停止。是否可以包含其他行代码,如果在指定路径中找不到该文件,则该过程将继续并且不会停止(没有调试)?

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助:

Option Explicit

Sub Macro1()

    Dim LastRow As Long, i As Long
    Dim PathName As String, MissingFiles As String

    With ThisWorkbook.Worksheets("Sheet1")

        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

            For i = 19 To LastRow Step 2 '<- Start from 19 like the example and stop lastrow column A sheet 1. Loop every two.

                PathName = .Range("A" & i).Value

                If Len(Dir(PathName)) = 0 Then '<- Make sure you add the extension of the file.
                    If MissingFiles = "" Then
                        MissingFiles = PathName
                    Else
                        MissingFiles = MissingFiles & vbNewLine & PathName
                    End If
                Else
                    Workbooks.Open Filename:=PathName, UpdateLinks:=0
                    ActiveWindow.Visible = True
'                    Windows("Data Quality Checks - ITS v2.8.xlsm").Activate
                End If

            Next i

            MsgBox "Missing Files are: " & vbNewLine & MissingFiles

    End With

End Sub

页面结构:

enter image description here

消息框:

enter image description here