我有一个包含超链接的列,我想进行编程搜索并替换超链接地址 - 地址本身,而不是要显示的文本。我该怎么做?
答案 0 :(得分:2)
通过修改范围对象的Hyperlinks元素的“Address”属性。超链接是一个集合,因此如果您的范围是单个单元格,您将选择第一个项目,但它允许您轻松遍历给定范围或工作表中包含的所有链接。
以下是仅更改当前所选单元格链接的示例(注意:它必须已有超链接)。
Sub ChangeLink()
Application.ActiveCell.Hyperlinks(1).Address = "www.test.com"
End Sub
以下是将当前工作表中的所有链接更改为www.google.com的变体,只要它们当前未指向www.google.com(不是必需的,只是为了演示):
Sub ChangeLinks()
For x = 1 To Application.ActiveSheet.Hyperlinks.Count
If Application.ActiveSheet.Hyperlinks(x).Address <> "www.google.com" Then
Application.ActiveSheet.Hyperlinks(x).Address = "www.google.com"
End If
Next x
End Sub
您还可以使用Hyperlinks.Add和.Delete方法添加和删除链接。 TextToDisplay属性允许您更改文本,Range属性允许您访问(或弄清楚)给定链接所属的单元格。
编辑:根据要求,以下是如何在一个特定列中的所有链接上执行此操作。
我经常喜欢创建一些变量来分配(设置)我正在使用的对象,例如工作表(此处调用“Sheet1”),然后是myColumn将引用的实际列。如果收到错误消息,则可以确定错误消息的位置。
请注意Hyperlinks集合如何根据您调用的对象很好地调整自身!
如果指定列中没有链接,我还添加了一个显示消息的检查。
Sub ChangeLinksInColumn()
Dim mySheet As Worksheet
Dim myColumn As Range
Set mySheet = Application.Worksheets("Sheet1")
Set myColumn = mySheet.Columns(3) ' Enter column number here
' Check if column contains hyperlinks
If myColumn.Hyperlinks.Count = 0 Then
MsgBox "No hyperlinks in specified column."
Else
' Perform task in myColumn only
For x = 1 To myColumn.Hyperlinks.Count
myColumn.Hyperlinks(x).Address = "www.google.com"
Next x
End If
End Sub