VBA意外达到字符串大小限制

时间:2015-06-17 10:33:10

标签: excel-vba vba excel

我正面临一个"字符串空间"尝试在vba中分配大字符串时出错:

Dim MyData As String
MyData = Space$(321262258)

字符数明显低于2 ^ 31预期限制。这种错误可能是什么原因?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

这似乎是一个有点不透明的错误 - 在某种意义上不透明,需要详细了解VBA解释器的内部结构才能回答。 MSDN说这个错误:

  

Visual Basic允许您使用非常大的字符串。但是,其他程序的要求以及操作字符串的方式可能会导致此错误。

https://msdn.microsoft.com/en-us/library/aa264524(v=vs.60).aspx

我无法在文档中找到任何建议,对于许多内置函数(如Space()或String())以及+或&等连接运算符,约为2 ^ 27的限制,但这些限制似乎存在。内存中字符串的最大可能大小(例如从文本文件读入)与可以从内置VBA函数和运算符构建的字符串的最大可能大小之间似乎存在差异记录的差异。奇。我会感兴趣的是,如果有人知道一个kludge可以在纯VBA构造空间$(321262258)或甚至空间(2 ^ 31 -1)试图构建的字符串。