使用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 & """)"