gpt4 book ai didi

vba - 检查命名表是否存在 VBA Excel 2007

转载 作者:行者123 更新时间:2023-12-02 14:31:18 25 4
gpt4 key购买 nike

我正在尝试使用 VBA Excel 2007 确定表是否存在,如果存在则将其删除。

我正在循环访问表名数组。

我的代码如下:

' Allocate
Dim lIndex As Long

' Allocate table header values in array
Dim sTableNames(1 To Constants.lNumTables) As String

' Populate array
sTableNames(1) = Constants.sTableNameKpiAllIncidents
sTableNames(2) = Constants.sTableNameSlaAllManualHelpdeskIncidents
sTableNames(3) = Constants.sTableNameSlaAllManualIncidents
sTableNames(4) = Constants.sTableNameKpiAllAutomaticIncidents

' Work in worksheet Statistics
With Worksheets(Constants.sSheetNameStatistics)

' Loop through all tables
For lIndex = 1 To UBound(sTableNames)

' Check if table already exists
If Not .ListObjects(sTableNames(lIndex)) Is Nothing Then

' Delete table
.ListObjects(sTableNames(lIndex)).Delete

End If

Next

End With

只要这些表存在于我的工作表中,我的代码就可以工作。我也尝试过更换线路

If Not .ListObjects(sTableNames(lIndex)) Is Nothing Then

用线

 If .ListObjects(sTableNames(lIndex)).Count > 0 Then

但是还是不行。

有人知道如何让它发挥作用吗?

如有任何帮助,我们将不胜感激。

最佳答案

nhee 建议的错误处理是正确的方法。

作为 UDF,上面的建议会更快:

Function TableExists(ws As Worksheet, tblNam As String) As Boolean
Dim oTbl As ListObject
On Error Resume Next
Set oTbl = ws.ListObjects(tblNam)
TableExists = Not oTbl Is Nothing
End Function

关于vba - 检查命名表是否存在 VBA Excel 2007,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36628830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com