VBA评估错误2023不抛出

使用我的macros,我试图检查,如果另一个工作簿包含特定工作表,而不打开工作簿。

我正在关注这两篇文章:

  • Visual Basic,检查另一个工作簿中是否存在工作表
  • 使用Microsoft Excel 2010中的VBA从已closures的工作簿中读取信息

事情是,部分ExecuteExcel4Macro(arg)应该抛出(在我的情况下)错误2023(一般评估错误)我试图testing出来,如果它正常工作。 我伪造了这个工作簿中没有的表单名称。

示例:DataWorkbook包含两个表单:InputData和Notes MacroWorkbook包含以下macros

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 

我用假名打电话(假设DataFake为sheetName)。 然后,当我在ExecuteExcel4Macro(arg)之前中断执行并在即时窗口内调用ExecuteExcel4Macro(arg)时,它给了我错误2023(这是正确的,因为没有这样的表称为DataFake),但我再次运行macros(我假定错误2023年)我的函数的第二部分应该提出新的错误与数字1(此错误是后来handeled)。 问题是,它不会在其他部分结束。 由于某种原因Err = 0(我也试过Err.Number = 0)都有相同的结果。 它说即使应该大喊也没有错误,这是一个错误。

有任何想法吗?