Нажмите, чтобы переключить вкладку листа

Я пытаюсь использовать VBA для создания того же действия, которое вы сделали бы, если бы у вас была открыта электронная таблица Excel с 3-мя листами, и вы хотите переключаться между листами точно так же, как при нажатии на вкладку листа внизу книги (т.е. Переключение между Sheet1, Sheet2, Sheet3, щелкнув вкладки листа)

Я пробовал кое-что:

book.Worksheets(1).Activate = True

book.Worksheets(1).Activate

sheet.Visible = True

Но ничего не работает. Я не уверен, что Активация - это то, что я хочу. Я думаю, что это просто делает лист активным, но не видимым. Видимый, похоже, ничего не делает. Как это можно сделать?

2 ответа

book.Worksheets(1).Activate

Предназначен для выполнения действия, которое вы хотите "нажимать на вкладку",

Вы также можете попробовать

book.Worksheets(1).Select

Который может использоваться для выбора нескольких вкладок (см. Взгляд на то, в чем разница между листами. Выбор и листы. Активация?)

Я предполагаю, что что-то не так, как с вашей ссылкой на книгу, так и с чем-то еще в вашем коде. Если вы Sheets("Sheet2").Activate новый файл excel и просто попробуйте " Sheets("Sheet2").Activate его, чтобы выбрать эту вкладку.


Спасибо за ответ. Я пытаюсь использовать COM-объекты в python. они обычно хорошо взаимодействуют друг с другом, но это одна вещь, которая, похоже, не работает. Я пробовал все ваши предложения без каких-либо результатов.

Мне удалось найти обходной путь, просто перемещая листы вокруг, используя:

sheet.Move(Before=book.Worksheets(1))

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

licensed under cc by-sa 3.0 with attribution.