使用VBA为范围内的每个单元格创建Excel自定义超链接
我有一个模块,可以从整个工作表中删除所有公式,然后,它应该使用单元格值在每个单元格上创建一个超链接公式使用VBA为范围内的每个单元格创建Excel自定义超链接,vba,excel,Vba,Excel,我有一个模块,可以从整个工作表中删除所有公式,然后,它应该使用单元格值在每个单元格上创建一个超链接公式 Sub Test() Dim ws1 As Worksheet Set ws1 = ThisWorkbook.Worksheets("Test") ws1.Range("B33:F533").Value = ws1.Range("B33:F533").Value For Each i In ws1.Range("B33:B533") i.Formula = "=HYPERLINK(""
Sub Test()
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Test")
ws1.Range("B33:F533").Value = ws1.Range("B33:F533").Value
For Each i In ws1.Range("B33:B533")
i.Formula = "=HYPERLINK(""https://somelocation/" & i.Value & """,""" & i.Value & """)"
Next
End Sub
编辑:它现在工作得很好。谢谢你的帮助
i.Formula = "=HYPERLINK('https://somelocation/"&i.Value&","& i.Value"')"
公式中有错误。在i.Value“')
处,您缺少&
,i.Value&“
。下面添加了“编译”的正确版本:
i.Formula = "=HYPERLINK('https://somelocation/" & i.Value & "," & i.Value & "')"
另外值得注意的是,与其编写“&i.Value&”
并让VBA IDE添加空格,不如自己编写,例如:“&i.Value&”
你的代码有两个缺陷,你应该添加最后一个&
以获得语法正确的公式,并在“
和&
之间添加空格,否则VBA将看不到它是正确的
编辑;第三个缺陷:
创建公式的行也错误。让我们将其分解为:
“=超链接('https://somelocation/“&i.Value&”,“&i.Value&”)“
公式中的参数为:
'https://somelocation/“&i.价值&”、“&i.价值&”“
所以这一行的输出示例可以是”https://somelocation/1,1'
。起初,我以为你在写一个带有逗号的URL,好吗。。?然后我查看了Excel中的HYPERLINK
函数,它需要两个参数。您只提供了一个参数。Excel公式还需要双引号,而不是单引号。您可以在VBA中转义双引号,如下所示
正确的行应该是:
i.Cells(1,1).Formula=“=HYPERLINK(”https://somelocation/“&i.Value&”“,”“&i.Value&”“”
您的方法确实修复了编译错误,但现在在公式中使用单引号的同一行上出现了“运行时错误'1004'应用程序定义或对象定义错误”。它需要双引号。通过键入“
,可以在VBA中转义双引号。所以这一行应该变成“=HYPERLINK(”)https://somelocation/&i.Value&“,”&i.Value&“,”
。