Динамическое управление листами в VBA Excel - PullRequest
2 голосов
/ 02 апреля 2012

У меня есть рабочая книга, которая служит шаблоном.

В настоящее время на листах с 3 по 12 хранится таблица с таким же шаблоном. Информация от моего sheet3 до sheet12 статически хранится в словаре, как показано ниже (конечно, я мог бы использовать цикл здесь, но для простоты)

Value2SheetNo.Add Sheet3.Range("F5").Value, 3
Value2SheetNo.Add Sheet4.Range("F5").Value, 4
Value2SheetNo.Add Sheet5.Range("F5").Value, 5
Value2SheetNo.Add Sheet6.Range("F5").Value, 6
Value2SheetNo.Add Sheet7.Range("F5").Value, 7
Value2SheetNo.Add Sheet8.Range("F5").Value, 8
Value2SheetNo.Add Sheet9.Range("F5").Value, 9
Value2SheetNo.Add Sheet10.Range("F5").Value, 10
Value2SheetNo.Add Sheet11.Range("F5").Value, 11
Value2SheetNo.Add Sheet12.Range("F5").Value, 12 

Однако, поскольку книга является шаблоном, бывают случаи, когда мне нужно только 5 таблиц (следовательно, требуется только от листа 3 до листа 7, лист 8 - лист 12 будет удален). Как я могу удовлетворить такое условие без изменения кода, лежащего в основе?

Спасибо.

1 Ответ

0 голосов
/ 03 апреля 2012

Если код использует кодовые имена рабочих листов, как показано в вашем примере, то ответ будет отрицательным, вы не сможете по-настоящему справиться с условием пропущенных листов, не изменив код, чтобы не использовать кодовые имена рабочих листов. (Это может сработать, если весь код, ссылающийся на Sheet12, запускается до того, как Sheet12 будет удален, но если какой-либо из них потребуется запустить после , вам нужно изменить код.)

Если вам нужны предложения по изменению кода, дайте мне знать.

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