Excel VBA, как определить индекс листа по имени листа - PullRequest
1 голос
/ 07 января 2012

В моем текущем проекте, с которым я собираюсь завершить, я хочу убедиться, что люди, которые возьмут на себя мою работу, останутся с чем-то, что не сломается после того, как я уйду. Этот проект представляет собой постоянный трекер, который ведется ежедневно в течение года, и каждый используемый лист (несколько для различных элементов интереса) выделяется по году в названии листа. Например, основной лист просто называется «ГГГГ», в котором «ГГГГ» является текущим годом. Другие рабочие таблицы называются «DTDYYYY», «MTDYYYY», «YTDYYYY», в которых YYYY - текущий год. В 2013 году я хотел бы, чтобы маленький VBA, который я использую, мог взять текущий YYYY и автоматически найти соответствующие рабочие листы.

Я знаю, что могу ссылаться на листы, используя соглашение SheetIDX. Я знаю, что могу использовать метод Sheets (NAME). Я не совсем уверен, как лучше всего достичь своей цели.

Ответы [ 2 ]

6 голосов
/ 07 января 2012

Вам нужна строка для имени.

With ThisWorkbook
    .Sheets(CStr(Year(Date))).Select
End With
6 голосов
/ 07 января 2012
Application.Sheets("Sheet1").Index
Application.Sheets(1).Name

Надеюсь, это то, что вам нужно.

Извините, я не видел последнюю часть о текущем году.Возможно это?

Application.Sheets(Year(Date())).Activate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...