使用宏在Excel上编辑多个外部链接

时间:2017-08-22 14:56:30

标签: excel vba excel-vba edit

我的VBA知识并非完美无暇所以提前道歉。我每个月都要编辑文件中的链接以更改参考月份(例如:Jul -xxxxx到Aug -xxxxx)

我有一个宏来列出表格上的外部链接(例如A1:A6)

Sub Display_Links()
'
' Display_Links Macro
'
' Keyboard Shortcut: Ctrl+l
'
Dim aLinks As Variant
Dim i As Integer
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
    For i = 1 To UBound(aLinks)
        ActiveCell.Offset(i, 0) = aLinks(i)
'       ActiveCell.Offset(i, 0).Hyperlinks.Add Anchor:=ActiveCell.Offset(i, 0), Address:=ActiveCell.Offset(i, 0)
    Next i
End If

End Sub

然后我将该范围复制并粘贴到B1:B6上,找到并替换月份(从7月到8月),所以我在工作表上有我需要的新链接。

然后我有以下宏:

Sub Linkupdate()

ActiveWorkbook.ChangeLink Range("A1").Text, _
    Range("B1").Text, xlExcelLinks

End Sub

有了这个,我可以改变每个链接,但是如何用(b1:b6)定义要更新的整个范围(a1:a6)?

非常感谢!

TL; DR - 我尝试在不使用编辑链接功能的情况下编辑WB上的多个链接,因为我需要做的唯一更改是更改月份(例如:Jul -xxxxx到Aug -xxxxx)

1 个答案:

答案 0 :(得分:0)

我假设你现在的作品只是想让它自己循环。你将不得不做一个循环,以便excel知道要捕获多少个细胞。

类似的东西:

Sub Linkupdate() 
    Dim Row As Integer

    Row = 1
    LastRow = Worksheets("WorksheetName").Cells(Rows.Count, "A").End(xlUp).Row

    Do while Row <= LastRow
      ActiveWorkbook.ChangeLink Range("A" & row).Text, _
      Range("B" & row).Text, xlExcelLinks
      Row = Row + 1
    Loop
End Sub