2

我正在尝试创建一个宏,它将根据活动单元格的内容创建一个超链接。

假设在单元格 A1 中,有对单元格 B29 的引用(即“=B29”),

如果我的活动单元格是 A1,我希望在运行宏时将“=B29”替换为“=HYPERLINK("#"&CELL("address",B29),B29)"。

我希望这个宏只适用于活动单元格。这可能吗?

如果您能帮助我,我将不胜感激。

我尝试了以下但它不工作:

Sub hyperlinktocell()
    Dim num1 As Integer
    Dim celladress As String

    num1 = Len(ActiveCell.Formula) - 1
    celladdress = Right(ActiveCell.Formula, num1)
    ActiveCell.Formula = "=HYPERLINK(""#""&CELL(""address"",celladdress,celladdress)"
End Sub

我是 VBA 新手,花了将近 2 个小时才获得上述权利,但没有任何成功。

4

1 回答 1

1

既然你已经完成了几乎所有的工作,我会向你发布我所拥有的:

Private Sub test()
    Dim s As String
    s = Right(ActiveCell.Formula, Len(ActiveCell.Formula) - 1)
    ActiveCell.Formula = "=HYPERLINK(""#""&CELL(""address""," & s & ")," & s & ")"
End Sub

如您所见,除了少用一个变量外,我们还有相同的解决方案。请注意最后一行我如何连接字符串。在您的代码中,所有这些变量都包含在双引号内,这使它们成为文本。然后 Excel 抱怨这不是该属性的有效值,这是正确的。

于 2012-10-08T20:01:14.490 回答