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

问题描述 投票:0回答:3

我有一个宏,它创建一个Mailto链接,在一个单元格中输入电子邮件地址,并且电子邮件的正文由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功能失败?

excel vba excel-vba hyperlink mailto
3个回答
2
投票

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

enter image description here


2
投票

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

如果是这样,另一种方法是使用Excel的qazxsw poi公式。

*(见HYPERLINK


1
投票

似乎超链接的长度有限,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函数返回2012字符。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.