在excel中如何使用vba命令实现批量删除指定名称的工作表

走过路过的帅哥靓姐们,懂的请多多指教小弟我,你的几句提语将可能对小弟来说是最大的帮助······谢谢了,谢谢·····
先谢谢楼上的解答,但是我要删除的不是静态制定的工作表,而是

如图所示的G列动态的,在后台利用命令调用G列中的字符串删除名称相应的工作表的,你看能不能再帮一下,不管如何还是万分感谢了······

按Alt + F11,双击ThisWorkbook,粘贴下面的代码:
Sub ouyangff()
On Error Resume Next
Application.DisplayAlerts = False
For i = 2 To [g65536].End(3).Row
a$ = Cells(i, 7)
Sheets(a$).Delete
Next
Application.DisplayAlerts = True
End Sub
按Alt + F11,回到你的画面所示的“表”中!
按Alt + F8,确定!
去试一试吧!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-18
已修改。其中cells(2,7)表示第2行,第7列。如果要改到其他列,可以稍作修改。
Sub te()
Dim Arr1
On Error Resume Next
Application.DisplayAlerts = False
Arr1 = Range(Cells(2, 7), Cells(Cells(65536, 7).End(xlUp).Row, 7))
For Each i In Arr1
Sheets(i).Delete
Next
Application.DisplayAlerts = True
End Sub追问

先谢谢楼上的解答,但是我要删除的不是静态制定的工作表,而是

如图所示的G列动态的,在后台利用命令调用G列中的字符串删除名称相应的工作表的,你看能不能再帮一下,不管如何还是万分感谢了······

第2个回答  推荐于2016-07-10
代码及注释如下:
Sub shanchu()
Application.DisplayAlerts = False'关闭提示,否则每删除一个非空工作表,都会出现提示
For i = 2 To [g65536].End(3).Row'i从2到G列最后一个非空行数循环
Sheets(Cells(i, 7).Delete'将工作表名为G列对应的工作表删除
Next
Application.DisplayAlerts = True'开启提示
End Sub
相似回答