VBA 在非常大的电子表格中查找最后一行(溢出错误)

VBA 在非常大的电子表格中查找最后一行(溢出错误)

我有一份数据转换表(使用 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无论如何都会将ints 转换为s,因此当您处理整数(整数)时,long您不妨一直使用它。long

相关内容