[英]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.