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

Mar*_*uer 3 vba microsoft-excel

我有数据转换表的原始输出(使用 PDF2XL)。该工作表有 240k 行。脚本本身运行良好,但前提是我将变量“LastRowI”声明为高达 30k。对于更高的值,我会收到“错误 6 溢出”

我使用获取最后一行的标准方法。

LastrowC = Worksheets("control").Cells(Rows.Count, "A").End(xlUp).Row
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何在不产生溢出错误的情况下获取大 Excel 工作表的最后一行?

eir*_*ude 6

您的问题是,在 VBA 中,Int类型是有符号的 16 位字段,因此它只能保存从 -32,768 到 +32,767 的值。将LastRow变量更改为Long,这是一个有符号的 32 位字段,可以保存从 -2,147,483,648 到 +2,147,483,647 的值。

直觉上,你会认为使用int,而不是long作为前者小于后者可能更有效,但你可以看到在这个答案解释,VBA转换ints到long小号,所以你还不如用long所有的时间当您处理整数(整数)时。