Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel内存不足错误_Excel_Vba - Fatal编程技术网

Excel内存不足错误

Excel内存不足错误,excel,vba,Excel,Vba,由于数据量大(一个集合中有2000000多个条目),Excel会以“内存不足错误”(代码7)终止我的VBA程序。我知道VBA不是处理这么多数据的合适语言,但有没有办法增加Excel运行VBA程序时使用的内存?我想这不是堆栈溢出,堆栈调用的数量限制为10 提前感谢,, 标记取决于您使用的Excel版本。早于Excel2007的版本往往具有相当有限的内存容量32位Excel2007及更高版本在理论上可以使用高达2GB的总容量,但在实践中,VBA通常很难获得超过512MB的容量64位Excel 201

由于数据量大(一个集合中有2000000多个条目),Excel会以“内存不足错误”(代码7)终止我的VBA程序。我知道VBA不是处理这么多数据的合适语言,但有没有办法增加Excel运行VBA程序时使用的内存?我想这不是堆栈溢出,堆栈调用的数量限制为10

提前感谢,,
标记取决于您使用的Excel版本。早于Excel2007的版本往往具有相当有限的内存容量
32位Excel2007及更高版本在理论上可以使用高达2GB的总容量,但在实践中,VBA通常很难获得超过512MB的容量
64位Excel 2010及更高版本要好得多:我已成功使用了多达4G字节的VBA内存。

使用字典而不是集合可能会更节省内存,但我尚未对其进行测试。

取决于您使用的Excel版本。早于Excel2007的版本往往具有相当有限的内存容量
32位Excel2007及更高版本在理论上可以使用高达2GB的总容量,但在实践中,VBA通常很难获得超过512MB的容量
64位Excel 2010和更高版本要好得多:我已经成功地使用了多达4GB的VBA内存。

使用字典而不是集合可能会更节省内存,但我没有测试过。

查尔斯,在阅读你的答案时,你回答了一个困扰我几个月的问题。。。谢谢查尔斯,谢谢你的反馈,这些数字很有趣!就我而言,我正在Vista 64位操作系统上使用Excel2007。关于字典,你是对的,但问题是每次添加元素时它们都需要使用键,这在我的例子中并不总是相关的。在考虑减少内存使用时,我发现我的收藏中有许多元素是相似的。在C++中,我可以将指针存储到同一个字符串。但是我怎么能在VBA中做到这一点呢?我不建议尝试在VBA中实现字符串池,但您可以始终使用XLL接口访问C++我不知道XLL,也找不到关于它的很多信息。如果我改写C++中的代码,它肯定会更快,但我仍然会受到Excel内存限制吗?我不知道Windows如何管理调用另一个进程的进程的内存。Charles,在阅读您的答案时,您回答了一个困扰我几个月的问题。。。谢谢查尔斯,谢谢你的反馈,这些数字很有趣!就我而言,我正在Vista 64位操作系统上使用Excel2007。关于字典,你是对的,但问题是每次添加元素时它们都需要使用键,这在我的例子中并不总是相关的。在考虑减少内存使用时,我发现我的收藏中有许多元素是相似的。在C++中,我可以将指针存储到同一个字符串。但是我怎么能在VBA中做到这一点呢?我不建议尝试在VBA中实现字符串池,但您可以始终使用XLL接口访问C++我不知道XLL,也找不到关于它的很多信息。如果我改写C++中的代码,它肯定会更快,但我仍然会受到Excel内存限制吗?我不知道Windows如何管理调用另一个进程的进程的内存。