Возможно ли активировать рабочий лист Excel из VBA, фактически не уходя с рабочего листа, с которого был запущен макрос?Активировать лист Excel в VBA без перехода к рабочему листу
ответ
Вы можете установить Application.ScreenUpdating
собственности на false
, а после выполнения вашей работы восстановите его до true
.
Обратитесь к примеру: https://msdn.microsoft.com/en-us/library/office/ff193498.aspx
Да, вы можете непосредственно запустить нужный код в новом рабочем листе с помощью команды with
With Sheets("Sheet2") 'Sheet2 is the new sheet
Debug.Print .Range("A1")
'Run your desired code here.
End With
Да.
ThisWorkbook.Worksheets(2).Activate
Это сделает нужный рабочий лист можно установить в качестве активного. Обратите внимание: если вы не отключите Application.ScreenUpdating
, как указано в другом ответе здесь, рабочие листы будут заметно перемещаться так, чтобы отображался активный рабочий лист.
Однако, я должен спросить, зачем вам нужно активировать рабочий лист? Если вы хотите запустить некоторые команды против клеток, расположенных на этом листе, вы можете сделать это без активации листа первого:
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(2)
ws.Range("A1").Value = "Hello world"
Этот фрагмент кода будет вставлять «Привет мир» в клетку A1
на втором листе в вашей книге - не требуется активизация рабочего листа.
- 1. ASP.NET OleDb Excel Подключение к рабочему листу
- 2. Сохранение результатов запроса доступа к рабочему листу Excel VBA
- 3. C# Доступ к рабочему листу Excel
- 4. Добавление приложения Bing Maps к рабочему листу
- 5. Excel VBA активировать рабочий лист
- 6. VBA Обратитесь к рабочему листу против листа диаграммы
- 7. Запуск макросов VBA по открытому рабочему листу
- 8. Активировать рабочий лист с помощью excel VBA
- 9. Проблема с кодировкой vba не удается добавить к рабочему листу
- 10. Кнопка «Назад» для перехода к конкретному листу, откуда он был вызван в excel VBA
- 11. Custom Excel VBA Горячая клавиша для «Перейти к предыдущему листу»
- 12. Подсчитайте количество комментариев к конкретному рабочему листу
- 13. Доступ к рабочему листу, где принадлежит макрос
- 14. Перейдите по рабочему листу excel и скопируйте непустые ячейки значение
- 15. копировать значения только по листу Excel VBA
- 16. Vba смещен к новому листу
- 17. Прикрепите элемент .net к листу без VSTO (но Excel-DNA)
- 18. Как вернуться к рабочему листу, из которого был вызван макрос?
- 19. Фокус Excel не возвращается к активному листу
- 20. Open XML SDK 2.0, чтобы получить доступ к рабочему листу excel 2010 по имени
- 21. excel named range копия от листа к листу
- 22. Как активировать конкретный рабочий лист в Excel?
- 23. Excel VBA выберите весь лист, используя диапазон
- 24. Проходной лист к функции (excel vba)
- 25. Не удается активировать рабочий лист VBA
- 26. Обратитесь к листу по части имени листа
- 27. Как получить путь к текущему листу в VBA?
- 28. Excel Macro: применить сортировку к каждому листу
- 29. Обращение к VBComponent по рабочему листу. Кодовое имя
- 30. Рабочий лист. Выберите переключающие экраны excel VBA
Я просто хотел сделать код более кратким, объявив активную электронную таблицу, а затем обращаясь к ее диапазонам без необходимости явно писать префикс ws. Но, учитывая, что обновление экрана настроек для false - это единственный способ перепрыгнуть между электронными таблицами, я в конечном итоге использую ваше решение, потому что screenupdating отключает обновление строки состояния. –
Использование явно объявленных ссылок всегда является плюсом, даже если это делает работу более «утомительной». В долгосрочной перспективе это хорошая привычка - для больших баз кода или проектов, которые ссылаются на множество листов, это практически необходимо. Также обратите внимание, что отключение «Application.ScreenUpdating» по-прежнему позволяет вам делать что-то со статусной панелью. – Vegard