使用表名检查特定表是否存在时的VBA Excel错误处理

时间:2018-07-17 16:18:39

标签: excel-vba

有一个线程几乎可以为我提供使用表名为表检查表时的确切需求。这是这里 VBA Excel check if a particular table exist using table name

TableExists = False
On Error GoTo Skip
If ActiveSheet.ListObjects("Table123").Name = "Table123" Then TableExists = True
Skip:
    On Error GoTo 0

如果表不存在,它将直接进入错误处理程序,这很好,但是我在函数中还有其他代码,当错误最终会使用相同的错误处理程序时出现。因此,我无法显示特定的msgbox来说明该表不存在。

如果表不存在,是否有一种显示msgbox的方法,该方法不使用与函数其他部分相同的错误处理程序。

我希望我能清楚地解释我的问题。 任何帮助,将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:2)

您可以创建一个单独的函数,该函数可以检查表是否存在并且与主例程错误处理程序无关。

Function tableExist(Sht As Worksheet, tblName As String) As Boolean
    On Error Resume Next
    tableExist = Sht.ListObjects(tblName).Name = tblName
    On Error GoTo 0
End Function

Sub test()

    If tableExist(ActiveSheet, "Table1234") Then

    ' write your code here

    End If
End Sub

答案 1 :(得分:0)

function foo() { new Promise(function (res, re) { /* code */ }).then(function() { /* code */ }).then(function() { /* code */ }).then(function() { /* code */ }); } 函数返回一个布尔值,指示该表是否存在。基于此,可以显示TableExists并提供一些相关信息:

MsgBox