Dim L As Double
Dim Workings() As Variant
Workings = Array("Due SO not Billed", "Working Paper", "Ageing Over 14 Days")
On Error Resume Next
Application.DisplayAlerts = False
For L = 1 To Worksheets.Count
If Worksheets(L).Name <> Workings Then
Worksheets(L).Delete
Exit For
End If
Next L
Application.DisplayAlerts = True
On Error GoTo 0
我试着写上面的代码。目的是我在一个工作簿中有 10 个工作表,但最终输出只需要 3 个工作表,我想删除其余的工作表。我用数组尝试了上面的代码,应该保存我在数组中给出的任何名称,并且应该删除所有其他剩余的工作表。我收到类型不匹配错误。有人可以帮忙吗?
最佳答案
使用Match
测试工作表的 Name
在数组中:
Dim Workings() As Variant
Dim ws As Worksheet
Workings = Array("Due SO not Billed", "Working Paper", "Ageing Over 14 Days")
Application.DisplayAlerts = False
For Each ws In Worksheets
If IsError(Application.Match(ws.Name, Workings, False)) Then
ws.Delete
End If
Next
Application.DisplayAlerts = True
关于vba - 如果工作表在数组中,请不要删除它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47746106/