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

VBA throws error 1004 when adding a Hyperlink

我有一个创建 Mailto Link 的宏,在一个单元格中输入电子邮件地址,电子邮件正文由 3 个不同的单元格组成,代码片段中的 mailto Strin。这个 link 然后应该放在某个单元格中。

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

但是我有时会收到

error 1004

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

还有哪些其他可能的原因会导致 Hyperlinks.Add 功能失败?

可能有多种原因。例如,Row 可能是 0:

最大工作表超链接限制为 65536。您可能 运行 反对这个*。

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

*(see 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)

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

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

转换分别用 %0A 和 %20 替换新行和空格。所以 "Hello World" 是 11 个字符长,但在 Mailto 中它看起来像这样 "Hello%20World" 并且长度为 13。因为我在转换之前查看文本和 adding/removing 空格似乎对我来说喜欢工作时不同长度的邮件。

感谢所有提供建议的人,即使他们不是我要找的。我希望这对以后的其他人有所帮助。