Изменить номер листа автоматически в коде VBA - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть книга Excel с поддержкой VBA, которая содержит более 20 листов.Теперь код в VBA использует номера рабочих таблиц для вызова рабочих листов.

Теперь мне придется удалить один лист, что делает весь код непригодным для использования, поскольку при удалении одного листа номер рабочего листа изменится.

Пример Worksheets(10).Activate будет указывать на другой лист, так как я буду удалять третий лист

Я довольно новичок в этом, так что будет самый быстрый способ вместо ручного изменения номера листа в коде.

1 Ответ

0 голосов
/ 11 февраля 2019

Обратите внимание, что существует 3 способа доступа к листу ...

  1. по его положению на панели вкладок:
    Worksheets(10) дает 10ᵗʰ рабочий лист на панели вкладок.Обратите внимание, что если у вас есть, например, листы с диаграммами, нумерация отличается от Sheets(10), который может быть совершенно другим листом.

  2. по имени видимой панели вкладок:
    Worksheets("Sheet10")

  3. по имени VBA:
    Sheet10
    Обратите внимание, что имя VBA можно изменить только в окне «Проект» редактора VBA.

Обратите внимание, что Worksheets(10), Worksheets("Sheet10") и Sheet10 могут быть совершенно разными листами, поскольку они используют 3 полностью независимые системы имен.

Какая из них сильно зависит от того, чтовы на самом деле пытаетесь сделать.Нет лучшего варианта, в общем, у каждого из них есть свои преимущества и недостатки.


Кроме того, я настоятельно рекомендую не использовать .Activate и .Select вообще.Поэтому прочитайте Как избежать использования Select в Excel VBA .

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