EXCEL中如何用VBA删除多个工作表?

例如:工作簿中有名为tt1、tt2和sht1、 sht2、 sht3、 sht4、 sht5、 sht6、 sht7
...等工作表,要求用宏删除名字以sht开头的所有工作表
答案都很好,但还差一点,要全自动删除,无须手动确定
以下是最佳答案
'删除名字前三个字符为“sht”的所有工作表
Public Sub delectsh()
Dim c As Worksheet
For Each c In Worksheets
If Left(c.Name, 3) = "sht" Then'这里的“sht”区分大小写
Application.DisplayAlerts = False'删除时不用确认
c.Delete
End If
Next c
End Sub
只能选最接近的了

第1个回答  2011-02-08
dim c as worksheet
for each c in worksheets
if left(c.name,3)="sht" then c.delete
next c
第2个回答  2011-02-09
第一步:
1、插入一个用户窗体,画一个列表框Ldir,用dir()函数取得所有预处理文档的名称
Dim Mypath As String, Myname As String
Mypath = InputBox("输入路径:") '或者画一个文本框名字为Tpath,Mypath = Tpath.text
Myname = Dir(Mypath & "*.xls", vbDirectory) '产生目录
Do While Myname <> ""
Ldir.Additem Myname
Myname = Dir '逐个获取目录
Loop
这样就在列表框中获得了文件名,在此基础上循环。
2、接着Dim xlbook As New Excel.Workbook '定义
for '循环Ldir的文件
Set xlbook = Application.Workbooks.Open("") '打开 路径 & Ldir.list……
xlbook.Worksheets(1).Range("A1:Z50").Select '选择区域,Worksheets(1)还可以用for循环
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '选择性粘贴
xlbook.Close SaveChanges:=True '关闭保存
Next
考研临近,一寸光阴一寸金,还望楼主自己多琢磨,我qq848555411
第3个回答  2018-03-02
得到了最佳答案,还想要什么呢?!
相似回答