#vba
#excel #vba
Вопрос:
Я написал функцию для поиска последней строки.
Sub test()
Msgbox LROW(1,1)
End Sub
Function LROW(shtNumber as Integer, Col As Integer) as string
Dim shtName as string
ShtName="Sheet" amp; shtNumber
LROW=ShtName . Cells(rows.count, col).End(xlUp).Row
End Function
Я получаю сообщение об ошибке
неверный квалификатор
Комментарии:
1. Удалите пробелы вокруг
.
? Это будетsheets(shtname).
слишком2. см.: Ссылаться на листы по имени
3. Спасибо, Натан, у моих листов есть имена, не могу изменить их имена на лист 1 и т. Д.
Ответ №1:
ShtName
это строка (которая содержит имя листа), а не лист.
Используйте что-то вроде
Dim shtName as string
ShtName="Sheet" amp; shtNumber
Dim ws as Worksheet
Set ws = Worksheets(ShtName) ' Consider to use ThisWorkbook.Worksheets(ShtName)
LROW = ws.Cells(rows.count, col).End(xlUp).Row