我正在检查工作表1上的行数,并将其与工作表2上的计数进行比较,以确认工作表1上的所有行都在工作表2上。
首先,我选择工作表1处于活动状态,然后对具有数据
的行进行计数其次,我将活动工作表切换到工作表2.工作表2包含具有数据的行,但是工作表1和工作表2在包含数据的行中不相等。
ThisWorkbook.Worksheets("Sheet1").Select
num = Application.WorsheetFunction.CountA(Range("A:A"))
ThisWorkbook.Worksheets("Sheet2").Select
num2 = Application.WorsheetFunction.CountA(Range("A:A"))
问题在于,每当我获得 num2 的值时,它总是等于 num ,我知道这不是真的。如果我手动检查 countA(A1:A100),我会得到一个证明 num!= num2 的值。我的猜测是,即使我正在切换到新的活动工作表,仍然会根据工作表1确定num2计算。这是真的吗?我的代码有一些明显的问题吗?提前谢谢。
答案 0 :(得分:1)
您无需在此处使用Select
。另外,尽量避免使用它们。
所以你需要的只是用它的表来限定范围。
num = Application.WorksheetFunction.CountA(Worksheets("Sheet1").Range("A:A"))
num2 = Application.WorksheetFunction.CountA(Worksheets("Sheet2").Range("A:A"))