【发布时间】:2020-10-25 00:00:57
【问题描述】:
正确的代码是
Private Sub DeleteTSheets()
Dim xl As New Excel.Application
Dim wb As Excel.Workbook
Dim ws as Excel.Worksheet
wb = xl.Workbooks.Open("C:\Patches\Main_Final.xlsm")
For Each ws in wb.sheets
If InStr(1, ws.Name, "T") Then
If len(ws.name)=3 then
ws.delete()
End If
End If
Next
wb.Close(Savechanges:=vbTrue)
End Sub
只有当我从 excel 表中删除所有宏时,代码才会运行!!!
谢谢,问候 莫赫布拉比布
【问题讨论】:
-
你问了这么多问题(不止1个),“代码不起作用或报错”的答案是:请告诉我们你遇到了什么错误,也许有人可以的帮助。
-
请删除
On Error行,你可能会真正看到你得到了什么错误。 -
明确地说,最佳实践支持使用
On Error并重定向到错误句柄部分。On Error Resume Next或On Error GoTo 0很少有用,它们会抑制有用的错误消息。 -
@Luuk ,感谢您的支持,但有时您没有某些错误输出可能是因为逻辑可能没有安排,例如这种情况是因为代码正确但它不动作。
-
@Meho2016:在您的问题中,我确实阅读了“代码不起作用”,现在您声称代码是正确的?