Sub test1()
Dim p, f
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
p = ThisWorkbook.Path & "\abc\"
f = Dir(p)
Do While f <> ""
Call test2(p & f)
f = Dir
Loop
MsgBox "ok"
End Sub
Sub test2(mypath)
Dim comp As Object
Dim wb As Workbook
Dim sh As Worksheet
Dim rng As Range
Set wb = Workbooks.Open(mypath)
'删除代码
For Each comp In wb.VBProject.VBComponents
If comp.Type = 100 Then
comp.CodeModule.DeleteLines 1, comp.CodeModule.CountOfLines
Else
wb.VBProject.VBComponents.Remove comp
End If
Next
'删除公式
For Each sh In wb.Sheets
For Each rng In sh.UsedRange
If rng.HasFormula Then
rng.Value = rng
End If
Next rng
Next sh
Sub test1()
Dim p, f
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
p = ThisWorkbook.Path & "\abc\"
f = Dir(p)
Do While f <> ""
Call test2(p & f)
f = Dir
Loop
MsgBox "ok"
End Sub
Sub test2(mypath)
Dim comp As Object
Dim wb As Workbook
Dim sh As Worksheet
Dim rng As Range
Set wb = Workbooks.Open(mypath)
'删除代码
For Each comp In wb.VBProject.VBComponents
If comp.Type = 100 Then
comp.CodeModule.DeleteLines 1, comp.CodeModule.CountOfLines
Else
wb.VBProject.VBComponents.Remove comp
End If
Next
'删除公式
For Each sh In wb.Sheets
For Each rng In sh.UsedRange
If rng.HasFormula Then
rng.Value = rng
End If
Next rng
Next sh