Добрый день!
Я в коде хотел получить более компактную запись ссылаясь на лист не по прямому наименованию, а подстановкой ссылки на лист, приведу пример:
Я в коде хотел получить более компактную запись ссылаясь на лист не по прямому наименованию, а подстановкой ссылки на лист, приведу пример:
Код |
---|
For Each wsBaseSheet In wbAct.Worksheets 'цикл по всем листам в открытой книге sSheetNameBase = wsBaseSheet.Name ' присваиваем строковой переменной имя листа из открытой книги If sSheetNameBase = sSheetName Then 'сравниваем имя листа в книге и имя листа в массиве For b = 1 To arrCol(a) lRow1 = wbAct.wsBaseSheet.Cells(Rows.Count, b).End(xlUp).Row |
Но такой код выдает ошибку, нашел на форумах подход, что лист нужно определить через SET
Попробовал так:
Код |
---|
For Each wsBaseSheet In wbAct.Worksheets 'цикл по всем листам в открытой книге sSheetNameBase = wsBaseSheet.Name ' присваиваем строковой переменной имя листа из открытой книги Set wsWsheet = wbAct.Worksheets(" & sSheetNameBase & ") If sSheetNameBase = sSheetName Then 'сравниваем имя листа в книге и имя листа в массиве For b = 1 To arrCol(a) lRow1 = wbAct.wsWsheet .Cells(Rows.Count, b).End(xlUp).Row |
Но тоже выдает ошибку.. как корректно можно сослаться на лист, если лист у нас определяется перебором переменной в цикле, т.е. я не могу сослаться на конкретный лист, или это невозможно?