Получить имя листа Excel и использовать его как переменную в макросе

Я пытаюсь найти способ использовать имя листа Excel как переменную в макросе, который я написал. Каждый месяц я имею дело с книгой, которая отправляется мне с двумя листами. Часть макроса использует интерфейс "Open File" для перехода к папке и открытия файла.

Первый лист в файле называется "Отчет", который является статическим. Все, что я делаю с этим, это удалить его (потому что он мне не нужен).

Второй лист можно назвать чем угодно и листом, на котором мне нужно запустить макрос. Есть ли способ сказать:

shtName = %whatever_the_sheetname_is_called%

а затем использовать переменную 'shtName' во всем макросе? Я предполагаю, что получение этого нового имени файла в качестве переменной также поможет.

Ответ 1

в макросе Visual Basic вы использовали бы

pName = ActiveWorkbook.Path      ' the path of the currently active file
wbName = ActiveWorkbook.Name     ' the file name of the currently active file
shtName = ActiveSheet.Name       ' the name of the currently selected worksheet

На первый лист в книге можно ссылаться

ActiveWorkbook.Worksheets(1)

поэтому после удаления вкладки [Отчет] вы должны использовать

ActiveWorkbook.Worksheets("Report").Delete
shtName = ActiveWorkbook.Worksheets(1).Name

чтобы "работать над этим листом позже", вы можете создать объект диапазона, например

Dim MySheet as Range
MySheet = ActiveWorkbook.Worksheets(shtName).[A1]

и продолжить работу над MySheet(rowNum, colNum) и т.д....

создание ярлыка объекта диапазона без указания имени shtName:

Dim MySheet as Range
MySheet = ActiveWorkbook.Worksheets(1).[A1]