我的目录中有许多损坏的.xlsx文件。 我想打开每个文件进行修复,并通过VBA脚本以相同的名称保存。
我尝试了以下代码来解决此问题:
Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Workbook
Pathname = ActiveWorkbook.Path & "\output\"
Filename = Dir(Pathname & "*.xlsx")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename, CorruptLoad:=xlRepairFile)
wb.Close SaveChanges:=True
Filename = Dir()
Loop
End Sub
但是此代码仅修复第一个文件并打开Windows资源管理器以手动保存文件。
是否可以执行修复并将具有相同名称的所有文件自动保存在同一文件夹中?
答案 0 :(得分:1)
多年以来我都没有接触过VBA,但是您可以调用一个明确的wb.SaveAs
方法。
答案 1 :(得分:0)
您设置了Application.DisplayAlert = False
吗?您的代码似乎不错。您只需要稍后打开它即可。