2014-10-01 343 views
0

下面的代码加载一个范围到一个数组:(?新的数据位)Excel的VBA负荷范围分成数组溢出错误

Dim Data() As Variant 
Dim i As Long 

Erase Data 

i = 2: Do Until Sheets("whatever").Cells(i, 1) = "": i = i + 1: Loop 
Sheets("whatever").Activate 
Data = Sheets("whatever").Range(Cells(2, 1), Cells(i, 37)).Value 

这用来工作,但今天既然给了我运行时错误“6” /溢出加载Data阵列的行中。

i = 242703这确实是我想加载的最后一行。这对于数组来说可以是两个大的吗?

+1

[此链接](http://www.cpearson.com/excel/LastCell.aspx)或[此链接](http://www.ozgrid.com/VBA/ExcelRanges.htm)不回答您的具体问题,但它提供了找到列中最后一个单元格的更好方法。 – 2014-10-01 17:42:24

+0

[退出循环并将该范围直接加载到一行代码中的数组](http://stackoverflow.com/questions/18481330/2-dimensional-array-from-range/18481730#18481730) – 2014-10-01 17:59:22

+0

您的代码278575行和37列,每列都包含一个整数值,对我来说运行良好。也许需要在代码/数据的其他地方查找问题? – barryleajo 2014-10-01 21:44:06

回答

0

以下是我解决了这个问题:

创建新的文件,在其中创建模块,并复制宏的所有文本到新文件的模块。我这样做后,Runtime Error 6 (Overflow)错误消失。