Excel VBA 获取特定单元格的超链接地址

use*_*866 5 excel vba hyperlink

如何编写 Excel VBA 代码来检索特定单元格中超链接的 url/地址?

我正在处理我的工作簿的sheet2,它包含大约300行。每行在“AD”列处都有一个唯一的超链接。我想要做的是循环“J”列中的每个空白单元格,并将其值从空白更改为“AD”列单元格的超链接 URL。我目前正在使用这段代码:

do while....
    NextToFill = Sheet2.Range("J1").End(xlDown).Offset(1).Address
    On Error Resume Next
    GetAddress = Sheet2.Range("AD" & Sheet2.Range(NextToFill).Row).Hyperlinks(1).Address
    On Error GoTo 0
loop
Run Code Online (Sandbox Code Playgroud)

上面代码的问题是它总是获得第一个超链接的地址,因为代码是.Hyperlinks(1).Address. 是否有办法通过范围地址获取超链接地址,就像也许一样sheet1.range("AD32").Hyperlinks.Address

小智 5

Not sure why we make a big deal, the code is very simple

Sub ExtractURL()
    Dim GetURL As String
    For i = 3 To 500
        If IsEmpty(Cells(i, 1)) = False Then
            Sheets("Sheet2").Range("D" & i).Value = 
               Sheets("Sheet2").Range("A" & i).Hyperlinks(1).Address
        End If
    Next i
End Sub
Run Code Online (Sandbox Code Playgroud)


D M*_*son 0

我从评论中了解到,您已经将 J 列设置为 URL 的字符串。如果是这样,这个简单的脚本应该可以完成这项工作(它将单元格超链接到单元格内指定的地址,如果您愿意,您可以通过更改 textToDisplay 选项来更改单元格文本)。如果我误解了这一点并且字符串位于 AD 列中,只需计算出 AD 的列号并替换以下行:

fileLink = Cells(i, the number of column AD)
Run Code Online (Sandbox Code Playgroud)

剧本:

Sub AddHyperlink()

Dim fileLink As String

Application.ScreenUpdating = False

With ActiveSheet
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row


For i = 4 To lastrow

    fileLink = Cells(i, 10)

    .Hyperlinks.Add Anchor:=Cells(i, 10), _
    Address:=fileLink, _
    TextToDisplay:=fileLink

Next i

End With

Application.ScreenUpdating = True

End Sub
Run Code Online (Sandbox Code Playgroud)