Excel vba макрос при выборе листа

Как запустить макрос, когда лист выбран из книги?

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

Запуск или выполнение кода макроса, когда лист выбран из книги с кодом VBA


стрелка синий правый пузырь Запуск или выполнение кода макроса, когда лист выбран из книги с кодом VBA

Следующий простой код может помочь вам запустить код макроса при активации определенного листа, пожалуйста, сделайте следующее:

1. Щелкните правой кнопкой мыши вкладку листа, на которой вы хотите выполнить макрос при его активации, а затем выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:

Код VBA: запускать код макроса при активации листа из книги:

Private Sub Worksheet_Activate()
Call MyMacro
End Sub

doc run macro sheet выбран 1

Внимание: В приведенном выше коде измените имя макроса на свое.

2. Затем сохраните и закройте окно кода, теперь, когда вы щелкаете или активируете эту конкретную вкладку листа, этот макрос будет запускаться немедленно.


Статьи по теме:

Как запустить макрос при изменении значения ячейки в Excel?

Как запустить макрос на основе значения ячейки в Excel?

Как запустить макрос на основе значения, выбранного из раскрывающегося списка в Excel?

Как запустить макрос, щелкнув гиперссылки в Excel?

Как запустить макрос автоматически перед печатью в Excel?


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка 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.

How to create a worksheet selection popup in Excel

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:

  1. Activate the Developer tab in the ribbon
  2. Press the  Insert icon to see the controls
  3. Click on Button in Form Control section
    How to create a worksheet selection popup in Excel - Create a button
  4. Click on your worksheet where you want to place the button.
  5. Assign Macro dialog will pop up
  6. Select the macro you want run when you click the button
  7. Click OK to create the button

Once created, you can click on the button to display worksheet selection popup.

How to create a worksheet selection popup in Excel - Button

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.

  1. Open the Macro window by clicking Macros icon in Developer
  2. Select your macro
  3. Click the Options button to open Macro Options dialog
  4. While the small textbox is active, type a character you want as a shortcut
  5. 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

How to create a worksheet selection popup in Excel - By Position

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

How to create a worksheet selection popup in Excel - Versatile code

Содержание

  1. VBA Activate Sheet — Как активировать лист в Excel, используя код VBA?
  2. Excel VBA Activate Sheet
  3. Как активировать лист в Excel VBA?
  4. VBA Activate Sheet — Пример № 1
  5. VBA Activate Sheet — Пример № 2
  6. VBA Activate Sheet — Пример № 3
  7. Плюсы Excel VBA Activate Sheet
  8. То, что нужно запомнить
  9. Рекомендуемые статьи
  10. VBA Выбрать лист, активировать лист и получить активный лист
  11. ActiveSheet
  12. Активировать рабочий лист (настройка ActiveSheet)
  13. Имя ActiveSheet
  14. Выбранные листы против ActiveSheet
  15. Выберите рабочий лист
  16. Выбрать лист по имени вкладки
  17. Выбрать лист по порядковому номеру
  18. Выберите рабочий лист с кодовым именем VBA
  19. Выбрать текущий лист
  20. Дополнительные примеры активации / выбора листов
  21. Установите ActiveSheet на переменную
  22. Изменить имя ActiveSheet
  23. С ActiveSheet
  24. Перебирать выбранные листы
  25. Перейти к следующему листу

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. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. VBA Range Cells
  2. Найти внешние ссылки в Excel
  3. VBA Active Cell
  4. Строка состояния в 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-книгу на нужном листе. С этим макросом Ваши пользователи будут сразу оказываться в конкретном месте файла.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как это использовать

Как макрос работает

Этот код запускается по событию рабочей книги (Open— при открытии файла) и делает активным нужный лист.

Код макроса

Private Sub Workbook_Open()
'Указываем нужный нам лист
Sheets("Отчёт").Select
End Sub

Как это использовать

Для реализации этого макроса, вам нужно скопировать и вставить его в код события Workbook_Open. Размещение макроса здесь позволяет запускать макрос сразу при открытии excel- файла.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
  3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code
  4. В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open, если нет, то выполните п.5
  5. В правом выпадающем списке событие Open

Макрос на диалоговое окно выбора листа.

fan1925

Дата: Среда, 24.04.2013, 22:19 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


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

 

Ответить

Serge_007

Дата: Четверг, 25.04.2013, 00:32 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (fan1925)

Не нашел готовых решений, а ведь наверняка у кого-нибудь есть уже давно

Не нашли потому что ни у кого нет такого готового решения и быть не может

Цитата (fan1925)

не хочу тратить время на банальщину

Это правильно, всецело поддерживаю. Пожалуй я тоже не буду на это время тратить


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

fan1925

Дата: Четверг, 25.04.2013, 02:54 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


А почему быть не может? Не совсем понял, что вы имеете в виду. smile

 

Ответить

Hugo

Дата: Четверг, 25.04.2013, 13:34 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Думаю самое простое:
[vba]

Код

Sub tt()
Dim rng As Range
Set rng = Application.InputBox(Prompt:=»Выделите диапазон на нужном листе», Type:=8)
MsgBox rng.Parent.Name
End Sub

[/vba]
Посложнее — создать список листов и вывести на форму например в листбокс.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Serge_007

Дата: Четверг, 25.04.2013, 13:49 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Игорь, а если выводить нужно скрытые листы, или листы диаграмм? Или даже очень скрытые и листы макросов? wink
Или наоборот — не нужно что-то из этого?


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Hugo

Дата: Четверг, 25.04.2013, 20:31 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Согласен. Тогда выводим на форму коллекцию sheets.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Excel vba макрос номер строки
  • Excel vba макрос на открытие файла
  • Excel vba макрос на открытие книги
  • Excel vba макрос который отключает макрос
  • Excel vba макрос закрыть книгу