Excel 通过VBA脚本自动修复大量损坏的.xlsx文件

Excel 通过VBA脚本自动修复大量损坏的.xlsx文件,excel,vba,Excel,Vba,我在一个目录中有许多损坏的.xlsx文件。 我想打开每个文件进行修复,并通过VBA脚本以相同的名称保存它 我尝试了以下代码来解决这个问题: Sub ProcessFiles() Dim Filename, Pathname As String Dim wb As Workbook Pathname = ActiveWorkbook.Path & "\output\" Filename = Dir(Pathname & "*.xlsx") Do While Filename &l

我在一个目录中有许多损坏的.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资源管理器保存文件


是否有办法执行修复并将所有同名文件自动保存在同一文件夹中?

是否已将Application.DisplayAlert设置为False?你的密码看起来不错。您只需稍后打开它。

我已经多年没有接触过VBA了,但是有一个明确的wb.SaveAs方法可以调用。

这里详细记录了文件夹循环。请浏览一些问题以了解如何实现Dirloop@urdearboy我知道如何在Dir上循环,这只是Dir上循环中的一段代码。正如我在问题中所说,问题是循环中的每个文件都必须保存manualy@takeshi6也许我们应该发布完整的代码,而不是让我们猜测:@Rawrplus编辑的问题和完整的代码已经好几年没有涉及VBA了,但是没有一个明确的wb.Save方法可以调用吗?不,那不起作用。窗口资源管理器仍然会弹出询问保存修复文件的位置,这很奇怪。我用“SaveAs”和“SaveAs”复制了你的代码,看起来还不错。你能附上你用过的文件吗?