最近在 vba 做自动化测试,然后现在需要修改每一本excel的参照,有没有可以统一修改的方法啊。因为后续可能需要经常这样操作。
可以通过 VBA 代码批量修改每个 Excel 文件的参照。以下是一些示例代码,可以帮助你开始:
修改所有打开的工作簿的参照
Sub ChangeRef()
Dim wk As Workbook
For Each wk In Workbooks
'修改参照代码
wk.ChangeLink "oldPath", "newPath", xlExcelLinks
Next wk
End Sub
修改一个指定文件夹内所有工作簿的参照
Sub ChangeRefInFolder()
Dim fs As Object, f As Object, wb As Workbook
Dim folderPath As String, oldPath As String, newPath As String
'指定文件夹路径
folderPath = "C:\Users\UserName\Desktop\TestFolder\"
'指定旧路径和新路径
oldPath = "C:\OldPath\"
newPath = "C:\NewPath\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderPath)
For Each f In f.Files
If Right(f.Name, 4) = "xlsx" Then
Set wb = Workbooks.Open(f.Path, UpdateLinks:=False)
'修改参照代码
wb.ChangeLink oldPath, newPath, xlExcelLinks
wb.Close SaveChanges:=True
End If
Next
End Sub
这些代码可以根据你的具体需求进行修改。注意,在修改参照之前最好先备份原始文件,以免发生不可预知的问题。