Как запустить макрос, когда лист выбран из книги?
В этой статье я расскажу о том, как запускать код макроса, когда вы выбираете или активируете определенный лист из книги.
Запуск или выполнение кода макроса, когда лист выбран из книги с кодом VBA
Запуск или выполнение кода макроса, когда лист выбран из книги с кодом VBA
Следующий простой код может помочь вам запустить код макроса при активации определенного листа, пожалуйста, сделайте следующее:
1. Щелкните правой кнопкой мыши вкладку листа, на которой вы хотите выполнить макрос при его активации, а затем выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:
Код VBA: запускать код макроса при активации листа из книги:
Private Sub Worksheet_Activate()
Call MyMacro
End Sub
Внимание: В приведенном выше коде измените имя макроса на свое.
2. Затем сохраните и закройте окно кода, теперь, когда вы щелкаете или активируете эту конкретную вкладку листа, этот макрос будет запускаться немедленно.
Статьи по теме:
Как запустить макрос при изменении значения ячейки в Excel?
Как запустить макрос на основе значения ячейки в Excel?
Как запустить макрос на основе значения, выбранного из раскрывающегося списка в Excel?
Как запустить макрос, щелкнув гиперссылки в Excel?
Как запустить макрос автоматически перед печатью в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (1)
Оценок пока нет. Оцените первым!
If your work requires navigating between worksheets a lot, activating those sheets can quickly become a hassle. Some VBA tips we’re going to cover here can help you to create a popup list of worksheets where you want them, and save yourself from the default worksheets menu. In this article, we are going to show you how to create a worksheet selection popup in Excel.
Download Workbook
Before starting
If you are new to VBA and macros — in a nutshell, VBA is a programming language for Office products. Microsoft allows users to automate tasks or modified properties of Office software. A macro, on the other hand is a set of VBA code, defining a calculation process.
Macros, or codes, should be written in modules, which are text areas in VBA’s dedicated user interface. Also, the file should be saved as an Excel Macro Enabled Workbook in XLSM format to keep the code.
You can find detailed instructions in our How to create a macro in Excel guide.
Creating a worksheet selection popup by VBA
The following code will display a worksheet selection popup at where the mouse cursor is.
Sub DisplayWorksheetPopup()
Application.CommandBars(«Workbook Tabs»).ShowPopup
End Sub
If you run the macro right away, you will see a list of your sheets names in a popup list. Clicking on a name navigate you to that sheet.
You can either bind this to macro to a button or shortcut to run without the VBA screen.
Binding to a button
You can add a button in your worksheet from Developer tab of the ribbon. If you are not familiar with inserting controls, you can follow the steps below:
- Activate the Developer tab in the ribbon
- Press the Insert icon to see the controls
- Click on Button in Form Control section
- Click on your worksheet where you want to place the button.
- Assign Macro dialog will pop up
- Select the macro you want run when you click the button
- Click OK to create the button
Once created, you can click on the button to display worksheet selection popup.
You can use an Excel illustration instead of a button as well. Use right-click context menu and select Assign Macro item.
Using a shortcut to create a worksheet selection popup
You can assign keyboard shortcuts to your custom macro as well. First you need to open the Macro window and edit the macro.
- Open the Macro window by clicking Macros icon in Developer
- Select your macro
- Click the Options button to open Macro Options dialog
- While the small textbox is active, type a character you want as a shortcut
- Click OK to apply the changes
Tip: All you need to is to click a single key. Excel offers either Ctrl + your key or Ctrl + Shift + your key combination based on available (not used) shortcut. For example, if you press K, Excel gives you Ctrl + Shift + K due Ctrl + K is existed.
Setting the popup location
If you are OK with the location based on where your mouse is pointing you can use the code provided as is. On the other hand, you can also set a specific location by specifying the coordinates.
You need to determine pixel coordinates after ShowPopup command. Excel counts pixels by starting from the top left. For example, to open at the target 500px left and 250px below the top left cell, use the following code:
Sub DisplayWorksheetPopup()
Application.CommandBars(«Workbook Tabs»).ShowPopup 500, 250
End Sub
Please note that the positions start at top left of the screen, they are independent from Excel window.
A versatile code
The worksheet selection popup has a 16-items limit. If you have more than 16 sheets, you will see 15 of the worksheets and a More Sheets item which opens the Activate window. The Activate window is a dialog that lists all worksheets.
As a result, there are 2 similar windows. By the following code you can call either one according the number of sheets in your workbook:
Sub VersatileDisplayWorksheetPopup()
If ActiveWorkbook.Sheets.Count > 16 Then
Application.CommandBars(«Workbook Tabs»).Controls(«More Sheets…»).Execute
Else
Application.CommandBars(«Workbook Tabs»).ShowPopup
End If
End Sub
Содержание
- VBA Activate Sheet — Как активировать лист в Excel, используя код VBA?
- Excel VBA Activate Sheet
- Как активировать лист в Excel VBA?
- VBA Activate Sheet — Пример № 1
- VBA Activate Sheet — Пример № 2
- VBA Activate Sheet — Пример № 3
- Плюсы Excel VBA Activate Sheet
- То, что нужно запомнить
- Рекомендуемые статьи
- VBA Выбрать лист, активировать лист и получить активный лист
- ActiveSheet
- Активировать рабочий лист (настройка ActiveSheet)
- Имя ActiveSheet
- Выбранные листы против ActiveSheet
- Выберите рабочий лист
- Выбрать лист по имени вкладки
- Выбрать лист по порядковому номеру
- Выберите рабочий лист с кодовым именем VBA
- Выбрать текущий лист
- Дополнительные примеры активации / выбора листов
- Установите ActiveSheet на переменную
- Изменить имя ActiveSheet
- С ActiveSheet
- Перебирать выбранные листы
- Перейти к следующему листу
VBA Activate Sheet — Как активировать лист в Excel, используя код VBA?
Excel VBA Activate Sheet
Для активации или выбора листа в Excel мы вручную переходим на лист и нажимаем на вкладку «Лист». Но когда мы пишем код, в котором нам нужно связать разные листы в разных формах, мы можем использовать функцию VBA Activate Sheet. Это можно сделать с помощью «. Активировать »в VBA. Это автоматически выберет или активирует лист для дальнейшего использования.
Активация листа означает выбор этого листа. И чтобы узнать, активирован или выбран этот лист, после проверки кода в Excel лучше проверить, можем ли мы увидеть текущий лист или нет.
Как активировать лист в Excel VBA?
Ниже приведены различные примеры активации листа в Excel с использованием кода VBA.
Вы можете скачать этот шаблон Excel для активации листа VBA здесь — Шаблон Excel для активации листа VBA
VBA Activate Sheet — Пример № 1
Существуют различные способы активации листа в VBA. Для этого мы рассмотрели 3 листа с именами Первый, Второй и Третий, как показано ниже. Целью присвоения имен каждому листу является различие между номером листа и именем листа, которое будет использоваться в следующих примерах.
Выполните следующие шаги, чтобы активировать лист в Excel VBA.
Шаг 1: Теперь перейдите к VBA и на вкладке меню « Вставка » выберите « Модуль», как показано ниже.
Модуль — это место, где мы напишем код для активации листа. После этого мы откроем новый модуль.
Шаг 2: В этом модуле создайте подкатегорию функции с любым именем. Для лучшего понимания мы создали его от имени VBA Activate Sheet по порядку. Это поможет в отслеживании правильного модуля.
Код:
Шаг 3: Теперь используйте функцию « Листы» для выбора любого листа.
Код:
Шаг 4: Теперь, чтобы фактически выбрать или активировать лист в Excel, используйте команду « Активировать», за которой следует точка (.)
Код:
Таким образом, мы разрешаем выбирать лист с именем «Первый» всякий раз, когда код вызывает его.
Шаг 5: Теперь сделайте то же самое для имени листа Second и Third, как показано ниже.
Код:
Шаг 6: Теперь скомпилируйте код пошагово или за один раз. Небольшой код может быть скомпилирован за один раз, что может не привести к ошибке. После этого запустите код, нажав на кнопку Play, которая находится под строкой меню.
Мы увидим, что третий лист будет выбран так, как он был расположен в конце. Если мы выполним пошаговую компиляцию, то сможем увидеть, кто первый, второй и третий листы активируются нажатием клавиши F8.
Когда компилятор пройдет через первую строку, мы увидим, что лист First активирован, как показано ниже.
Снова нажав клавишу F8, компилятор пройдет через вторую строку кода, и мы увидим, что лист Second активирован.
И когда компилятор достиг End Sub структуры кода, мы активируем третий лист, как показано ниже.
VBA Activate Sheet — Пример № 2
Мы также можем использовать команду «Рабочий лист» для выбора и активации любого листа. Этот процесс очень похож на пример-1. Для этого еще раз рассмотрим имя файла с именем First , Second и Third. Выполните следующие шаги, чтобы активировать лист в Excel VBA.
Шаг 1: В модуле начните писать подкатегорию VBA Activate Sheet в последовательности, как показано ниже.
Код:
Шаг 2: Поскольку мы использовали команду Sheet для активации Sheet, здесь мы будем использовать команду Worksheet .
Код:
Шаг 3: Теперь используйте функцию «Активировать», обозначенную точкой (.), Чтобы активировать лист.
Код:
Шаг 4: Теперь сделайте то же самое для Второго и Третьего Листа.
Код:
Шаг 5: После этого скомпилируйте код. Здесь мы сделаем пошаговую компиляцию, чтобы увидеть изменения. Для прессы F8, которая выполняет пошаговую компиляцию и запуск кода. Когда компилятор пройдет через вторую строку кода, мы увидим, что в листе Excel второй активирован или выбран.
Шаг 6: Снова нажмите клавишу F8, чтобы выбрать следующий лист. Мы увидим, как компилятор проходит через третью строку кода и достигает конца, лист с именем «Третий» активируется или выбирается.
VBA Activate Sheet — Пример № 3
Есть еще один способ активировать любой лист. Для этого мы также рассмотрим тот же набор листов с одинаковыми именами First, Second и Third, которые используются в приведенных выше примерах. В этом примере мы увидим 3 комбинации функций Sheet и Worksheet вместе с Select, которые мы будем использовать вместо Activate . Функция выбора работает так же, как и активировать . Используя комбинацию различных функций для одного и того же использования, мы увидим, как меняется результат.
Выполните следующие шаги, чтобы активировать лист в Excel VBA.
Шаг 1: Для этого откройте модуль и поместите подкатегорию в название выполняемой функции или в любое другое имя по вашему выбору. Мы сохраняем имя, но в последовательности, как показано ниже.
Код:
Шаг 2: Снова таким же образом используйте функцию Sheets с именем листа, как показано ниже.
Код:
Шаг 3: После этого используйте функцию Select, тянущуюся через точку (.)
Код:
Шаг 4: Теперь во второй строке кода мы будем использовать функцию Sheets вместе с Activate для листа с именем Second, как показано ниже.
Код:
Шаг 5: И для последнего листа с именем «Третий» мы будем использовать «Рабочие листы» вместе с функцией «Выбор», чтобы активировать его, как показано ниже.
Код:
Шаг 6: Теперь скомпилируйте полный код и выполните шаг за шагом, чтобы увидеть изменения, нажав клавишу F8. Когда компилятор проходит через первую строку кода, лист First будет активирован.
Когда компиляция проходит через вторую строку кода, лист Second будет активирован.
И наконец, когда компилятор придет в End Sub, активируется третий лист, как показано ниже.
Вот как мы можем использовать комбинацию Sheets и Worksheets вместе с функциями Activate и Select для активации любого рабочего листа.
Плюсы Excel VBA Activate Sheet
- Выбрать любой лист в Excel, а также с VBA довольно просто.
- Эта функция очень полезна, когда наш код связан с данными на разных листах.
То, что нужно запомнить
- Функция выбора и активации выполняет ту же функцию, что и активация любого листа. Хотя название другое.
- Различные комбинации выбора и активации вместе с листами и рабочим листом возможны для активации одного или нескольких рабочих листов.
- Активация любых листов означает выбор этого листа.
- После выполнения кода сохраните файл в Macro Enable Worksheet. Это помогает сохранить код, чтобы мы могли использовать его несколько раз без каких-либо потерь.
Рекомендуемые статьи
Это руководство к листу активации VBA. Здесь мы обсудили, как активировать лист в Excel, используя код VBA, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- VBA Range Cells
- Найти внешние ссылки в Excel
- VBA Active Cell
- Строка состояния в Excel
Источник
VBA Выбрать лист, активировать лист и получить активный лист
В этой статье будет обсуждаться объект ActiveSheet в VBA. Также будет обсуждаться, как активировать, выбирать и переходить к рабочим листам (и многое другое). Прочтите наше полное руководство по рабочим листам VBA для получения дополнительной информации о работе с рабочими листами в VBA.
ActiveSheet
В VBA ActiveSheet относится к текущему активному рабочему листу. Одновременно может быть активен только один лист.
Активировать рабочий лист (настройка ActiveSheet)
Чтобы установить ActiveSheet, используйте Worksheet.Activate:
1 | Рабочие листы («Ввод»). Активировать |
Команда «Активировать лист» фактически «перейдет» к листу, изменив видимый лист.
В приведенном выше примере используется имя листа (вкладка). Вместо этого вы можете использовать кодовое имя VBA для рабочего листа:
Имя ActiveSheet
Чтобы получить имя ActiveSheet:
1 | msgbox ActiveSheet.name |
Выбранные листы против ActiveSheet
В любой момент времени ActiveSheet может быть только один лист. Однако можно выбрать сразу несколько листов.
Когда выбрано несколько листов, активным считается только самый верхний лист (ActiveSheet).
Выберите рабочий лист
Если вы хотите выбрать лист вместо его активации. Вместо этого используйте .Select.
Выбрать лист по имени вкладки
Это выбирает рабочий лист на основе его имени вкладки листа
1 | Таблицы («Ввод»). Выбрать |
Выбрать лист по порядковому номеру
Это выбирает рабочий лист на основе его положения относительно других вкладок.
1 | Рабочие листы (1) .Выбрать |
Выберите рабочий лист с кодовым именем VBA
Выбор листов по имени кода может предотвратить ошибки, вызванные изменением имени листа.
Выбрать текущий лист
Чтобы выбрать текущий рабочий лист, используйте объект ActiveSheet:
Дополнительные примеры активации / выбора листов
Установите ActiveSheet на переменную
Это назначит ActiveSheet переменной объекта рабочего листа.
123 | Dim ws как рабочий листУстановить ws = ActiveSheet |
Изменить имя ActiveSheet
Это изменит имя ActiveSheet.
1 | ActiveSheet.Name = «NewName» |
С ActiveSheet
Использование оператора With позволяет оптимизировать код при работе с объектами (такими как листы или ActiveSheet).
12345 | С ActiveSheet.Name = «StartFresh».Cells.Clear.Range («A1»). Value = .NameКонец с |
Обратите внимание, что вам не нужно повторять ActiveSheet перед каждой строкой кода. Это может значительно сэкономить время при работе с длинным списком команд.
Перебирать выбранные листы
Следующий макрос будет проходить по всем выбранным листам, отображая их имена.
12345678 | Sub GetSelectedSheetsName ()Dim ws как рабочий листДля каждого ws в ActiveWindow.SelectedSheetsMsgBox ws.NameСледующий wsКонец подписки |
Перейти к следующему листу
Этот код перейдет на следующий лист. Если ActiveSheet является последним листом, он перейдет к первому листу в рабочей книге.
Источник
На чтение 1 мин. Просмотров 4.7k.
Что делает макрос: помогает открыть Excel-книгу на нужном листе. С этим макросом Ваши пользователи будут сразу оказываться в конкретном месте файла.
Содержание
- Как макрос работает
- Код макроса
- Как это использовать
Как макрос работает
Этот код запускается по событию рабочей книги (Open— при открытии файла) и делает активным нужный лист.
Код макроса
Private Sub Workbook_Open() 'Указываем нужный нам лист Sheets("Отчёт").Select End Sub
Как это использовать
Для реализации этого макроса, вам нужно скопировать и вставить его в код события Workbook_Open. Размещение макроса здесь позволяет запускать макрос сразу при открытии excel- файла.
- Активируйте редактор Visual Basic, нажав ALT + F11.
- В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
- Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code
- В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open, если нет, то выполните п.5
- В правом выпадающем списке событие Open
Макрос на диалоговое окно выбора листа. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |