使用前需对Excel进行设置:文件——选项——信任中心——信任中心设置——宏设置——勾选【信任对VBA对象模型的访问】,再运行VBA
Sub 删除模块等()
'------------------单个文件夹,不含子文件夹
Dim VBP As Object, vbc As Object, shp As Shape, sh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动
Application.AskToUpdateLinks = False '不更新链接
Application.DisplayAlerts = False '不提示窗口
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show Then
Path = .SelectedItems(1)
File = Dir(Path & "\*.xls*")
' Application.EnableEvents = False
' Application.Calculation = xlCalculationManual
Do Until LenB(File) = 0
Set Wb = Workbooks.Open(Filename:=Path & "" & File)
For Each m In Wb.VBProject.VBComponents
If m.Name Like "*" Then
m.CodeModule.DeleteLines 1, m.CodeModule.CountOfLines
Wb.VBProject.VBComponents.Remove m
End If
Next m
Wb.Close savechanges:=True '关闭
File = Dir
Loop
End If
End With
Application.ScreenUpdating = True '恢复屏幕刷新
Application.AskToUpdateLinks = True '更新链接
Application.DisplayAlerts = True '提示窗口
Application.Calculation = xlCalculationAutomatic '恢复自动重算
MsgBox "已完成"
End Sub
Sub 删除模块等()
'------------------单个文件夹,不含子文件夹
Dim VBP As Object, vbc As Object, shp As Shape, sh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动
Application.AskToUpdateLinks = False '不更新链接
Application.DisplayAlerts = False '不提示窗口
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show Then
Path = .SelectedItems(1)
File = Dir(Path & "\*.xls*")
' Application.EnableEvents = False
' Application.Calculation = xlCalculationManual
Do Until LenB(File) = 0
Set Wb = Workbooks.Open(Filename:=Path & "" & File)
For Each m In Wb.VBProject.VBComponents
If m.Name Like "*" Then
m.CodeModule.DeleteLines 1, m.CodeModule.CountOfLines
Wb.VBProject.VBComponents.Remove m
End If
Next m
Wb.Close savechanges:=True '关闭
File = Dir
Loop
End If
End With
Application.ScreenUpdating = True '恢复屏幕刷新
Application.AskToUpdateLinks = True '更新链接
Application.DisplayAlerts = True '提示窗口
Application.Calculation = xlCalculationAutomatic '恢复自动重算
MsgBox "已完成"
End Sub