Skip to main content

批量替换400个文件中不同的超链接

以下是一种可以实现你需求的方法:

一、获取四百个文件的超链接信息并输出到 Excel

  1. 使用 VBA 可以遍历指定文件夹中的 Excel 文件,并提取其中的超链接信息。假设这些文件都在一个特定的文件夹中,比如 “D:\ExcelFiles”。以下是代码示例:复制

Sub GetHyperlinksFromFiles()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim hlink As Hyperlink
    Dim outputRow As Long
    Dim targetFolder As String
    
    targetFolder = "D:\ExcelFiles" '修改为你的实际文件夹路径
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(targetFolder)
    
    Set ws = ThisWorkbook.Worksheets(1) '假设输出到当前工作簿的第一个工作表
    
    outputRow = 1
    
    For Each file In folder.Files
        If Right(file.Name, 5) = ".xlsx" Or Right(file.Name, 4) = ".xls" Then '只处理 Excel 文件
            Set wb = Workbooks.Open(file.Path)
            For Each ws In wb.Worksheets
                For Each hlink In ws.Hyperlinks
                    ws.Cells(outputRow, 1).Value = file.Name '文件名
                    ws.Cells(outputRow, 2).Value = hlink.Address '旧超链接
                    outputRow = outputRow + 1
                Next hlink
            Next ws
            wb.Close False
        End If
    Next file
End Sub


运行这段代码后,它会将指定文件夹中的所有 Excel 文件中的超链接信息提取出来,并输出到当前工作簿的第一个工作表中,第一列是文件名,第二列是旧的超链接。

二、手动填充第三列新的超链接值

你可以在生成的 Excel 表格中手动填充第三列新的超链接值。

三、批量根据第二列替换成第三列的值

  1. 使用以下 VBA 代码来实现批量替换:



这段代码会遍历当前打开的所有工作簿,将旧超链接替换为新超链接。在运行此代码之前,请确保已经手动填充好了第三列新超链接的值。

请注意,在运行 VBA 代码时,确保备份你的重要数据,以防出现意外情况。同时,根据实际情况修改代码中的文件夹路径等参数。