我有一个使用非常大的数据集的VBA宏。 在我的数据集中,我有~44000行。我想在宏中计算这一点,并尝试使用显示here的顶级方法。
我接受变量sncountmax并使其等于上面链接中的一个方法。
sncountmax = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
即使工作表包含44000行,sncountmax也将保持设置为先前设置的值。
编辑:我已检查过,此工作表上没有其他宏功能正在执行。我试图使用宏删除重复项,但这不起作用,但删除Excel中的重复项。
答案 0 :(得分:2)
尝试更改为以下内容:
sncountmax = Cells(Rows.Count, "A").End(xlUp).Row
这将给出A列的最后一行,因此在您的情况scountmax = 44000
答案 1 :(得分:0)
我不建议使用find
。它不可靠,因为它有时根据数据不返回任何内容,而且速度较慢。
如果您的唯一目的是计算第一列中的行:
with thisworkbook.sheets("Sheet1")
sncountmax = .Cells(.Rows.Count, 1).End(xlUp).Row
end with
参考上面示例中的工作表和工作簿。
您可能希望在模块顶部使用Option Explicit
。
此外,我只能猜测,但您应该删除Òn Error Resume Next
。
错误意味着您的代码在某处出错。