繁体   English   中英

如何从Excel中的VBA函数返回长字符串?

[英]How to return a long string from a VBA function in Excel?

我在Excel中定义了以下函数:

Function LongString()
    Dim i As Integer

    Do
        LongString = LongString & "X"
        i = i + 1
    Loop Until i > 40000

End Function

这会导致错误: #VALUE!

似乎最大字符串长度限制为32768?

如何使这个工作?

--EDIT--感谢大家的支持。 我的解决方案是将我的函数分成几个包含少于32768个字符的单元格。

据微软称,32767长度限制在他们的规范中(见这里 )。

单元格内容的长度(文本):“32,767个字符。单元格中只显示1,024个;公式栏中显示全部32,767个。”

因此,获得更多信息的唯一方法是将字符串分解为多个单元格。

Excel允许每个单元格超过32 k。 我有一个奇怪的情况,我有一个34743字节的字符串,我处理字符串,但无法返回超过32k。 所以问题在于返回值,而不是单元格的最大大小。

注意Excel 2013,在2003年的限制是32k。 但vba代码仍然限制在Excel 2013中返回32k.M $罕见的错误。

您的LonsString函数返回一个变量/可变长度字符串,最多可包含2 ^ 31(约20亿)个字符。

但是,正如@Jon所提到的,单元格最多只能包含32767个字符。 (将i的数据类型更改为long来证明这一点)。

如果你扩展你想要用LongString实现的目标,我们可能会提供一些替代方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM