作者:乔山办公网日期:
返回目录:excel表格制作
代码及注释如下:
Sub shanchu()
Application.DisplayAlerts = False'关闭提示,否则每删除zd一个非空工作回表,都会出现答提示
For i = 2 To [g65536].End(3).Row'i从2到G列最后一个非空行数循环
Sheets(Cells(i, 7).Delete'将工作表名为G列对应的工作表删除
Next
Application.DisplayAlerts = True'开启提示
End Sub
(1)把这100个excel文档放在同一个文件夹;
(2)在其他任何地方新建一个excel,名称任意;
(3)在新建的这个excel里添加以下代码(用你的代码改的);
(4)在“宏安全性”设置里勾上“信任对VBA工程对象模型的访问”,然后运行即可
Sub 批量删除vba代码()
'On Error Resume Next '这里把它7a686964616fe58685e5aeb9361注释是为了测试用,你可以把它撤销注释
Dim xlsApp As New Excel.Application '这里其实可以不用这个的,不过你用了我就不改了
Dim xlsWorkBook As Excel.Workbook
Dim vbPro
Dim sFileName As String '你都没定义sFileName怎么用?
Dim Addr As String
Addr = InputBox("请输入文件所在的地址:") & "\"
xlsApp.DisplayAlerts = False '这个让程序运行的时候没那么烦
xlsApp.ScreenUpdating = False
sFileName = Dir(Addr) '这个是批量查找用的
'接下来是批量处理
Do Until sFileName = ""
Set xlsWorkBook = xlsApp.Workbooks.Open(Addr & sFileName)
'Set vbPro = ActiveWorkbook.VBProject '如果要批量删除,这里一定不能用activeworkbook!
Set vbPro = xlsWorkBook.VBProject
With vbPro
For i = .vbcomponents.Count To 1 Step -1
LCount = .vbcomponents(i).CodeModule.CountOfLines
.vbcomponents(i).CodeModule.DeleteLines 1, LCount
If Val(.vbcomponents(i).Type) < 100 Then '这里判断工作表里有没有代码
.vbcomponents.Remove .vbcomponents(i)
End If
Next i
End With
xlsWorkBook.Save
xlsWorkBook.Close
'xlsApp.Quit 这句不能这样用,只要关掉workbook就行了,不然所有的excel会全关掉。
sFileName = Dir
Loop
xlsApp.ScreenUpdating = True
xlsApp.DisplayAlerts = True
MsgBox "删除完成!"
End Sub
代码及注释百如下:
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
sub ds()
for i = worksheets.count to 1 step -1
if worksheets(i).name like "sh*" then '( 这里的sh区分大小写)
worksheets(i).delete
end if
next
end sub