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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加超链接时,VBA抛出错误1004相关的知识,希望对你有一定的参考价值。

我有一个宏,它创建一个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功能失败?

答案

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

enter image description here

另一答案

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

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

*(见HYPERLINK

另一答案

似乎超链接的长度有限,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并添加/删除空格,我觉得在不同长度的邮件在哪里工作。

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

以上是关于添加超链接时,VBA抛出错误1004的主要内容,如果未能解决你的问题,请参考以下文章

在 VBA UDF 中添加超链接

Excel VBA数据验证交换仅在调试模式下工作

当根据单元格值为每一行添加其他数据时,VBA 创建超链接

VBA 另存为运行时错误 1004

运行时错误 1004 文档未使用 Vba Excel 2016 保存

Excel 2013 - VBA AddDataFiled 1004 错误