我有一份数据转换表(使用 PDF2XL)的原始输出。该表有 240k 行。脚本本身运行良好,但前提是我将变量“LastRowI”声明为最高 30k。对于更高的值,我得到“错误 6 溢出”
我使用标准方式获取最后一行。
LastrowC = Worksheets("control").Cells(Rows.Count, "A").End(xlUp).Row
所以我的问题是如何获取大型 Excel 表的最后一行而不产生溢出错误?
答案1
您的问题是,在 VBA 中,该Int
类型是一个有符号的 16 位字段,因此它只能保存从 -32,768 到 +32,767 的值。将您的LastRow
变量更改为Long
,它是一个有符号的 32 位字段,可以保存从 -2,147,483,648 到 +2,147,483,647 的值。
直觉上,你会认为使用int
而不是long
可能更有效,因为前者比后者小,但正如你所见在这个答案中解释,VBA无论如何都会将int
s 转换为s,因此当您处理整数(整数)时,long
您不妨一直使用它。long