#excel #vba
Вопрос:
У меня есть две рабочие книги, которые называются «Продажи» и «Трекер» соответственно. Я хочу напечатать количество строк в разделе «Продажи» в рабочей книге «Трекер».
В «Трекере» есть только один лист: «Подсчет». «У продаж есть два»: «Данные» и «Данные 2». Я хочу напечатать количество строк в разделе «Данные» в книге «Отслеживание».
Вот код, который выдает ошибку 438:
Sub StoreDate()
Dim SalesWb As Workbook, TrackerWb As Workbook
Set SalesWb = Workbooks("Sales.xlsm")
Set TrackerWb = Workbooks("Tracker.xlsm")
Dim SalesWs As Worksheet, TrackerWs As Worksheet
Set SalesWs = SalesWb("Data")
Set TrackerWs = TrackerWb("Count")
Dim last_row As Long
last_row = SalesWs.Cells(Rows.Count, 1).End(xlUp).Row
TrackerWs.Range("B" amp; Rows.Count).End(xlUp).Offset(1).Value = last_row
End Sub
Ответ №1:
Чтобы ссылаться на листы в книгах, вам нужно использовать Рабочие листы (или листы, если вы ленивы).
Sub StoreDate()
Dim SalesWb As Workbook, TrackerWb As Workbook
Set SalesWb = Workbooks("Sales.xlsm")
Set TrackerWb = Workbooks("Tracker.xlsm")
Dim SalesWs As Worksheet, TrackerWs As Worksheet
Set SalesWs = SalesWb.Worksheets("Data")
Set TrackerWs = TrackerWb.Worksheets("Count")
Dim last_row As Long
last_row = SalesWs.Cells(Rows.Count, 1).End(xlUp).Row
TrackerWs.Range("B" amp; Rows.Count).End(xlUp).Offset(1).Value = last_row
End Sub