使用VBA为范围内的每个单元格Excel自定义超链接

时间:2015-10-26 10:50:09

标签: excel vba excel-vba

我有一个模块可以从整个工作表中删除所有公式,然后应该使用单元格值在每个单元格上创建一个超链接公式。

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
编辑:它现在正在完美运作。谢谢你的帮助!

1 个答案:

答案 0 :(得分:5)

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不会发现它是对的。

修改;第三个缺陷:

创建公式的行也是错误的。让我们分解一下: "=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 & """)"