【发布时间】:2019-03-01 04:07:43
【问题描述】:
我的目录中有许多损坏的 .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 资源管理器手动保存文件。
有没有办法自动修复所有同名文件到同一个文件夹?
【问题讨论】:
-
文件夹循环在这里有很好的记录。请浏览几个问题以了解如何实现
Dir()循环 -
@urdearboy 我知道如何循环遍历目录,这只是目录循环内部的一段代码。正如我在问题中所说,问题是循环中的每个文件都必须手动保存
-
@takeshi6 也许应该发布整个代码,而不是让我们猜测:)
-
@Rawrplus 用整个代码编辑问题
-
好多年没接触VBA了,难道没有明确的wb.Save方法可以调用吗?