使用我的宏我试图检查,如果另一个工作簿包含特定工作表而不打开工作簿。
我正在关注这两篇文章:
问题是,ExecuteExcel4Macro(arg)部分应抛出(在我的情况下)错误2023(一般评估错误) 我试图测试它,如果它正常工作。我伪造了本工作簿中没有的工作表名称。
实施例: DataWorkbook包含2个表:InputData和Notes MacroWorkbook包含以下宏
Private Function checkSheet(ByVal path As String, _
ByVal fileName As String, _
ByVal sheetName As Strgin) As Boolean
Dim arg = "'" & path & "[" & fileName & "]" & _
sheetName & "'!" & Range("A1").Address(True, True, xlR1C1)
ExecuteExcel4Macro(arg)
If Err = 0
checkSheets = True
Else
Err.Raise 1
End If
End Function
我用假sheetname调用该函数(让我们将DataFake称为sheetName)。 然后,当我在 ExecuteExcel4Macro(arg)之前中断执行时,在即时窗口内我调用 ExecuteExcel4Macro(arg)它给了我错误2023(这是正确的,因为有没有这样的表格叫做DataFake)但是我再次运行宏(我假设错误2023被引发)我的第二部分函数应该引发新的错误数字1(之后这个错误被处理)。问题是,它不会在其他部分结束。出于某种原因,Err = 0(我也试过Err.Number = 0)两者都有相同的结果。它说没有错误,即使它应该喊出来有错误。
有什么想法吗?