我想从 Sheet2 代码模块计算 Sheet1 中的行数。
在sheet1代码模块中,以下代码工作正常
ctr = Range("B2", Range("B2").End(xlDown)).Count
我在 Sheet2 代码模块中尝试了相同的代码
recct = ThisWorkbook.Sheets("Sheet1").Range("B2", Range("B2").End(xlDown)).Count
我收到运行时错误 1004 应用程序定义或定义错误
谢谢
最佳答案
错误发生在 recct
中的第二个范围引用中。由于您引用的是不同的工作表,因此需要在两个范围引用中告诉 VBA 工作表名称。
试试这个:
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B2").End(xlDown)).Rows.Count
End With
或者,这也可以工作(尽管有点草率)。
recct = ThisWorkbook.Sheets("Sheet1").Range("B2", ThisWorkbook.Sheets("Sheet1").Range("B2").End(xlDown)).Rows.Count
更新
由于关于工作表上行数的实际含义有很多讨论,因此使用上面的代码从 B2 开始并计算正下方的连续单元格的数量
但是,如果您想查找 B 列中最后一个“真实”使用的单元格(真正的,我的意思是其中包含数据),请执行以下操作:
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B" & .Rows.Count).End(xlUp)).Rows.Count
End With
关于excel - 计算工作表中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13088090/