使用VBA,范围内每个单元格的Excel自定义超链接
我有一个模块,从整个工作表中删除所有公式,然后,它应该使用单元格值在每个单元格上创build一个超链接公式。
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 & "
。
你的代码有2个缺陷,你应该添加最后一个&
得到一个语法正确的公式,并添加"
和&
之间的空格,否则VBA将不会看到它是正确的。
编辑; 第三个缺陷:
创build公式的线也是错误的。 我们来分解一下: "=HYPERLINK('https://somelocation/" & i.Value & "," & i.Value & "')"
公式中的参数是: 'https://somelocation/" & i.Value & "," & i.Value & "'
所以这行的输出示例可以是'https://somelocation/1,1'
。 起初,我以为你用逗号写了一个URL,好吗? 但是接着我看了一下Excel中的HYPERLINK
函数,它需要两个参数。 你只给一个参数。 Excel公式还希望双引号而不是单引号。 您可以在VBA中像这样""
转义双引号。
正确的行应该是:
i.Cells(1, 1).Formula = "=HYPERLINK(""https://somelocation/" & i.Value & """,""" & i.Value & """)"