Sub Example()
On Error GoTo ErrHandler
Application.ScreenUpdating = False
Dim src As Workbook
'//Open The Source Excel Workbook In "Read-Only-Mode"
Set src = Workbooks.Open(Cells(103, 103).Value, True, True)
'Set src = Workbooks.Open("E:\Example\Example\Example.xlsx", True, True)
'//Get The Total Rows From The Source Workbook
Dim iTotalRows As Long
iTotalRows = src.Worksheets("Example").Range("B1:B" & Cells(src.Worksheets("Example").Rows.Count, "B").End(xlUp).Row).Rows.Count
MsgBox iTotalRows
Dim iCnt As Long
Dim 행 As Integer
.......
以上是我的代码。
我显然在下面的代码中指定了工作表的名称。
iTotalRows = src.Worksheets("Example").Range("B1:B" & Cells(src.Worksheets("Example").Rows.Count, "B").End(xlUp).Row).Rows.Count
但它会返回异常结果。
我想知道的是“示例”工作表的行。
通常它会很好地返回“示例”工作表的行。
因为“示例”工作表是工作簿的最后打开的工作表。
当我打开另一张工作表并关闭并保存工作簿时,Excel vba代码计算该工作表的行数!
我指定了明显的工作表名称,但似乎没有效果。
我如何解决这个问题?
提前感谢您的回答。
答案 0 :(得分:2)
cells
没有已定义的父级。
iTotalRows = src.Worksheets("Example").Range("B1:B" & src.Worksheets("Example").Cells(src.Worksheets("Example").Rows.Count, "B").End(xlUp).Row).Rows.Count
由于你是从第一行开始的(例如B1),这可能会更好,
with src.Worksheets("Example")
iTotalRows = .cells(.rows.count, "B").end(xlup).row
end with
MsgBox iTotalRows