Получить имя листа Excel и использовать в качестве переменной в макросе - PullRequest
15 голосов
/ 24 августа 2011

Я пытаюсь найти способ использовать имя листа Excel в качестве переменной в макросе, который я написал. Каждый месяц я имею дело с рабочей тетрадью, которая отправляется мне с 2 листами. Часть макроса использует интерфейс «Открыть файл», чтобы перейти к папке и открыть файл.

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

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

shtName = %whatever_the_sheetname_is_called%

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

1 Ответ

34 голосов
/ 24 августа 2011

в макросе 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...