添加超链接时,VBA抛出错误1004

时间:2017-12-21 14:24:38

标签: excel vba excel-vba hyperlink mailto

我有一个Macro,它创建一个Mailto Link,在一个单元格中输入电子邮件地址,并且电子邮件的正文由3个不同的单元格组成,即代码片段中的mailto Strin。然后应将此链接放入某个单元格中。

With Sheets("Menu")
    .Hyperlinks.Add _
        anchor:=.Cells(row, 8), _
        Address:=mailTo, _
        TextToDisplay:="mailTo", _
        ScreenTip:="MailTo link"
End With

但是我有时会得到一个

  

错误1004

在上面的代码中。删除邮件正文的部分可以解决问题,所以我原本以为它可能与mailTo String的长度有关。然而,这似乎并非如此,因为我已经使用不同长度的字符串。

可能导致Hyperlinks.Add功能失败的其他可能原因是什么?

3 个答案:

答案 0 :(得分:2)

可能有以下几个原因。例如,Row可能 0

enter image description here

答案 1 :(得分:2)

最大工作表超链接限制为65536.您可能正在运行此*。

如果是这样,另一种方法是使用Excel的HYPERLINK formala。

  

*(见https://support.office.com/en-us/article/Excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3?CorrelationId=6fdacf7e-c207-4932-a46d-b82e7fa0679b&ui=en-US&rs=en-US&ad=US&ocmsassetID=HP010342495

答案 2 :(得分:1)

似乎超链接的长度有限,len函数返回2012字符。

我最初没有发现这个的原因是因为我只是在转换为mailto之前查看邮件文本。

转换分别用%0A和%20替换新行和空格。因此“Hello World”长度为11个字符,但在Mailto中它看起来像“Hello%20World”并且长度为13.由于我在转换之前查看Text并添加/删除空格,我觉得在不同长度的邮件在哪里工作。

感谢所有提出建议的人,即使他们不是我想要的。我希望将来可以帮助其他人。