使用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&“,”