Excel макрос при нажатии гиперссылки

Макрокод может быть очень полезным для нас при решении некоторых сложных задач в Excel, обычно мы можем выполнить его в Microsoft Visual Basic для приложений окно, нажав Run или нажатие F5 ключ. Но пробовали ли вы когда-нибудь запускать макросы, щелкая относительные гиперссылки на листе?

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


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

Нам может быть интересно запустить макрос, щелкнув гиперссылку в Excel, следующий метод может помочь вам выполнить эту задачу шаг за шагом:

1. Создайте гиперссылки, которые вы хотите использовать для выполнения кодов макросов. Щелкните ячейку и создайте гиперссылку для ссылки на себя, см. Снимок экрана:

макрос запуска документа из гиперссылки 1

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

макрос запуска документа из гиперссылки 2

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

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

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    If Target.Range.Address = "$B$6" Then
        Call Macro1
        End If
         If Target.Range.Address = "$B$8" Then
        Call Macro2
         End If
End Sub

макрос запуска документа из гиперссылки 3

Внимание: В приведенном выше коде B6 и B8 содержат ли ячейки гиперссылки, которые вы хотите использовать, и Macro1 и Macro2 являются кодовыми названиями макросов, измените их по своему усмотрению.

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


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

Как запустить макрос при изменении значения ячейки в 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% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (5)


Оценок пока нет. Оцените первым!

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

Всем доброго дня!
Прошу помощи вот в какой проблеме! Имеется книга эксель, в которой задана гиперссылка =ГИПЕРССЫЛКА(ВПР(E1;Лист2!1:1048576;2;ЛОЖЬ)) хотелось сделать чтобы эту самую гиперссылку можно было запустить нажатием кнопки. Как сделать не знаю! Кнопку создал, какой макрос написать теперь не знаю чтобы активировать ячейку с гиперссылкой…

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Включите макрорекордер и нажмите на эту гиперссылку. Затем остановите запись — макрос готов.

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

Макрос записался
Sub Макрос1()

‘ Макрос1 Макрос


   Sheets(«Лист2»).Select
   range(«N1»).Select
   End Sub
кнопку привязал, но при нажатии просто переводит в ячейку с гиперрссылкой не открывая ее..
мне нужно чтобы при нажатии открывался файл указанный в гиперссылке. что не так в коде?

 

Niff-Nif

Пользователь

Сообщений: 16
Регистрация: 04.06.2013

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

не знаю! сделал как написал Юрий, вот что получилось..

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#6

04.06.2013 11:32:47

Запишите не активацию ячейки, а именно клик по гиперссылке. Рекордер запишет примерно такое:

Код
Range("A14").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
 

Niff-Nif

Пользователь

Сообщений: 16
Регистрация: 04.06.2013

Должно быть еще: Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

Не то вы нажимали.

Range(«N1»).Hyperlinks(1).Follow

Учимся сами и помогаем другим…

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#9

04.06.2013 11:34:29

Цитата
karych35 пишет:
не знаю! сделал как написал Юрий, вот что получилось..

Неправда — я не так советовал — перечитайте моё сообщение:

Цитата
Включите макрорекордер и нажмите на эту гиперссылку
 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

Я нажимаю на запись макроса, далее перехожу на второй лист и жму на гиперссылку (синий шрифт), далее нажимаю остановку записи и привязываю кнопку! Почему в коде не прописывает все остальное я не знаю! Я не активирую ячейку а жму именно на ссылку..
вставил в код данные
   range(«N1»).Select
   Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub

пишет ошибку run-time error ‘9’

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Покажите ЦЕЛИКОМ код, записанный рекордером — я не вижу перехода на второй лист.

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

Sub Макрос1()

‘ Макрос1 Макрос


   Sheets(«Лист2»).Select
   range(«N1»).Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

может это из-за «мудренной» формулы в гиперссылке (=ГИПЕРССЫЛКА(ВПР(Лист1!E1;Лист2!1:1048576;2;ЛОЖЬ))?

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#15

04.06.2013 11:55:29

Не знаю, что у Вас там в этой ячейке… Обработанный напильником код у меня работает и выглядит так:

Код
Sheets("Лист1").Range("A14").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

У меня в А14 точно гиперссылка на файл.

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

Юрий, и у меня ссылка, я ведь ее мышкой нажимаю, все открывается… а вот через кнопку не работает! жаль! Но все равно спасибо за оперативную помощь!!!

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#17

04.06.2013 12:02:16

Цитата
karych35 пишет:
может это из-за «мудренной» формулы в гиперссылке

А у меня в ячейке именно ГИПЕРССЫЛКА, а не формула.

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

да сейчас попробовал «чистую» гиперссылку (не формулу) все работает! а гиперссылку с формулой как запустить через кнопку? можно или нет?

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

#19

04.06.2013 12:37:12

Чувствую, что так вам надо

Код
CreateObject("WScript.Shell").Run Chr(34) & Range("N1") & Chr(34)

Учимся сами и помогаем другим…

 

Михаил С.

Пользователь

Сообщений: 10514
Регистрация: 21.12.2012

#20

04.06.2013 12:51:39

Цитата
karych35 пишет:
Я нажимаю на запись макроса, далее перехожу на второй лист и жму на гиперссылку (синий шрифт), далее нажимаю остановку записи и привязываю кнопку! Почему в коде не прописывает все остальное я не знаю!

Вероятно Excel 2007. В нем макрорекордер «урезанный»

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

Михаил С., мои тесты показали:
1) если в ячейке указана гиперссылка, то макрорекордер пишет правильный Selection.Hyperlinks(1).Follow
2) если в ячейке сидит формула (как в данном случае), но открывается excel-файл, то макрорекордер пишет Workbooks.Open содержимое_ячейки и т.д.
3) если в ячейке сидит формула, но открывается НЕ excel-файл, то макрорекордер пишет именно то, что получалось у karych35

Именно поэтому я и предложил забить на кнопку код, выложенный выше

Учимся сами и помогаем другим…

 

karych35

Пользователь

Сообщений: 14
Регистрация: 04.06.2013

#22

04.06.2013 14:03:06

Всем спасибо за участие! Вот что я сделал:
убрал из формулы (=ГИПЕРССЫЛКА(ВПР(Лист1!E1;Лист2!1:1048576;2;ЛОЖЬ)) гиперссылку, у меня вышел в ячейке адрес файла, в модуле написал код
Sub TextToLink()
Sheets(«Лист1»).Select
range(«A13»).Select
ActiveCell.Hyperlinks.Add ActiveCell, ActiveCell.Text
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=Tr
End Sub
сразу скажу что переместил ссылку на Лист1, чтобы не перебрасывало при открытии гиперссылки на второй лист, привязал макрос к кнопке и все заработало!!! Уряяяяя!
Еще раз всем СПАСИБО!!!

orange3100

3 / 3 / 0

Регистрация: 16.10.2014

Сообщений: 148

1

Excel

Вызов процедуры через нажатие на Гиперссылку с передачей параметра

30.06.2018, 13:22. Показов 3748. Ответов 1

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Доброго времени суток уважаемые форумчане.

Подскажите пожалуйста, каким образом можно вызывать процедуру по нажатию на гиперссылку в ячейке Эксель с передачей параметра в эту процедуру из другой ячейки?

Имеем простой набор:

Visual Basic
1
2
3
4
5
6
Код  Ссылка
 1   >>>
 2   >>>
 3   >>>
 4   >>>
 5   >>>

Нажимая на гиперссылки в столбце «ссылки» происходит вызов простейшей процедуры:

Visual Basic
1
2
3
Public Sub Test
MsgBox "Код ячейки" & Range("A1").Value
End Sub

Не знаю как сделать так, чтобы значение A1 менялось на текущее положение Activecell, ну и непосредственно сам запуск процедуры…
Подскажите пожалуйста.

Вложения

Тип файла: zip test.zip (5.9 Кб, 5 просмотров)



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

01.07.2018, 12:54

2

orange3100, а что за суровая необходимость вызывать процедуру через нажатие на Гиперссылку, которая никуда не ведет?
В качестве альтернативы можно запускать макрос

двойным

кликом по ячейке например в ст. В, для этого в модуль ЛИСТА

Visual Basic
1
2
3
4
5
6
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 2 Then
    MsgBox "Код ячейки" & Target.Offset(, -1)
    Cancel = True
  End If
End Sub

Если все же хочется через гиперссылку. Функция ГИПЕРССЫЛКА не вызывает события, для которого можно было бы написать обработчик на VBA. Если создать гиперссылку с помощью Ctrl+K, и чтобы она вела к этой же ячейке, можно обработать событие перехода по гиперссылке. В модуль ЛИСТА

Visual Basic
1
2
3
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
  MsgBox "Код ячейки" & ActiveCell.Offset(, -1)
End Sub



0



Вставленные в таблицу Excel ссылки не всегда становятся активными, из-за чего переход по ним в одно нажатие попросту невозможен. В таких случаях ссылку необходимо активировать, чтобы дальнейшее взаимодействие с ней было более удобным. Для этого есть разные способы, каждый из которых подойдет в определенных ситуациях.

Вариант 1: Вставка ссылки из браузера

Excel работает таким образом, что при копировании ссылки из адресной строки веб-обозревателя она сразу же становится активной. Используйте этот метод, если нужно вставить новые строки в таблицу, а не редактировать уже существующие. Найдите требуемую страницу в браузере и скопируйте ее, выделив и используя комбинацию клавиш Ctrl + C.

Копирование адреса для активации ссылки в Excel

Перейдите в Microsoft Excel, после чего вставьте ссылку в подходящую ячейку, подогнав ее по размеру. Выберите любую другую клетку для редактирования, чтобы заметить, как применяется изменение к этой. Теперь вы можете нажать ЛКМ по ссылке, чтобы сразу открыть ее в браузере по умолчанию. 

Вставка адреса в поле для активации ссылки в Excel

Прочитайте текст на всплывающей подсказке, появляющейся при наведении курсора на саму ссылку: в ней есть информация о том, что переход происходит при одинарном нажатии, а для выделения необходимо кликнуть и удерживать кнопку мыши. Это поможет разобраться с редактированием, если ранее вы с ним не работали. Информация об адресе в ячейке для активации ссылки в Excel

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Вариант 2: Самостоятельная активация ссылки

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

  1. Выделите ячейку со ссылкой или надписью, после чего нажмите по ней ПКМ.Выбор ячейки для активации ссылки в Excel

  2. Из появившегося контекстного меню выберите пункт «Ссылка», открыв соответствующее окно с настройками.Переход в меню Ссылка для активации ссылки в Excel

  3. Если сейчас ссылка представлена в поле «Текст», ее необходимо скопировать и перенести в поле «Адрес».Перенос текста в адрес для активации ссылки в Excel

  4. Вместо ссылки в поле «Текст» вы можете вписать любую надпись, нажатие по которой отвечает за переход по ссылке, вставленной в поле «Адрес».Изменение текста ячейки для активации ссылки в Excel

  5. Примените изменения и вернитесь к таблице. На следующем скриншоте вы видите результат активации ссылки с заменой ее текста на более уместный.Просмотр результата для активации ссылки в Excel

Думаю, принцип использования окна «Ссылка» вам понятен, и проблем с переименованием возникнуть не должно. Используйте такой метод, когда нужно заменить громоздкую ссылку на лаконичную надпись, которая не будет нарушать внешний вид таблицы, но при этом останется функционально полезной.

Вариант 3: Использование макроса

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

  1. Для начала через главное окно перейдите в меню «Параметры».Переход в Параметры для активации ссылки в Excel

  2. Выберите раздел «Настроить ленту» и поставьте галочку возле основной вкладки «Разработчик». Так вы обеспечите ее отображение в верхней панели программы, что нам сейчас и пригодится.Включение вкладки Разработчик для активации ссылки в Excel

  3. Примените изменения, вернитесь к таблице, перейдите на соответствующую вкладку и запустите оснастку «Visual Basic».Переход к созданию макроса для активации ссылки в Excel

  4. Дважды щелкните по файлу книги, чтобы справа отобразилось окно редактирования кода.Создание макроса для активации ссылки в Excel

  5. Вставьте туда оставленный ниже код, заменив значения «a2» на номер ячейки, с которой начинается активация ссылок, а «а» – на букву столбца.

    Sub HyperSsylka()
    Dim cell As Range, ra As Range: Application.ScreenUpdating = False
    Set ra = Range([a2], Range("a" & Rows.Count).End(xlUp))
    For Each cell In ra.Cells
    If Len(cell) Then cell.Hyperlinks.Add cell, cell
    Next cell
    End Sub
    
    Sub HyperSsylkaSelect()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In Selection
    If Len(cell) Then cell.Hyperlinks.Add cell, cell
    Next cell
    End Sub

    Строку для редактирования вы видите на следующем изображении. Редактирование макроса для активации ссылки в Excel

  6. Сохраните результат, нажав по соответствующей кнопке на панели сверху или используя сочетание клавиш Ctrl + S.Сохранение макроса для активации ссылки в Excel

  7. Закройте редактор кода и запустите окно «Макрос». Дважды щелкните по строке с созданным макросом для активации ссылок.Применение макроса для активации ссылки в Excel

  8. Все изменения выполняются автоматически, а далее вам остается только убедиться в том, что вместо обычного текста появились активные ссылки, переход по которым возможен (если в их содержимом действительно находится веб-адрес).Проверка макроса для активации ссылки в Excel

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

Кнопка в Excel как ссылка на ячейку, какой-либо инструмент, созданный макрос значительно упрощает работу в программе. Чаще всего это графический объект с назначенным макросом или гиперссылкой. Рассмотрим, как сделать такую кнопку.

Как сделать кнопку на листе Excel

Суть работы: создать графический объект и назначить для него макрос или гиперссылку. Рассмотрим подробнее.

Способы создания графического объекта:

  1. Кнопка – элемент ActiveX. Переходим на вкладку «Разработчик». Нажимаем кнопку «Вставить». Открывается меню с набором элементов для вставки. Выбираем первый элемент ActiveX – «кнопку» (в виде серого кирпичика). Теперь рисуем курсором кнопку необходимого размера.
  2. Кнопка 1.

  3. Кнопка – элемент управления формы. Снова переходим на вкладку «Разработчик». Открываем меню инструмента «Вставить». Теперь выбираем элемент «кнопка» из первой группы (такой же серый кирпичик). Рисуем кнопку. Сразу открывается окно для назначения макроса: можно сделать сразу, а можно попозже.
  4. Кнопка 2.

  5. Кнопка – автофигура. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем подходящую фигуру. Рисуем. По готовой фигуре можно щелкнуть правой кнопкой мыши и изменить оформление.
  6. Кнопка 3.

  7. Кнопка – рисунок. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем инструмент «Рисунок». Для выбора будут предложены варианты, которые имеются на компьютере.

Кнопка 4.

Графический объект создан. Теперь нужно сделать его «рабочим».



Как в Excel сделать кнопку с макросом

К примеру, написали макрос для выполнения определенной задачи. Чтобы запускать его, нужно каждый раз заходить в меню «Разработчик». Что неудобно. Гораздо проще создать «рабочую» кнопку.

Если мы использовали элемент ActiveX, то:

Макрос 1.

Для других графических объектов макрос назначается так же. Процедура еще проще. Нужно щелкнуть правой кнопкой мыши по нарисованной кнопке или картинке и выбрать инструмент «Назначить макрос».

Назначить макрос.

Другие варианты использования кнопок

С помощью кнопок в Excel можно не только выполнять созданные макросы, но и переходить в определенную ячейку, другой документ, на другой лист. Рассмотрим подробнее.

Нарисуем графический объект и выделим его. На вкладке «Вставка» найдем кнопку «Гиперссылка».

Гиперссылка.

После нажатия открывается окно для создания связи кнопки с файлом, веб-страницей, электронной почтой, новым документом, местом в текущем документе.

Вставка гиперссылки.

Достаточно выбрать необходимый вариант и прописать к нему путь. Этот способ не требует написания макросов и предоставляет пользователю широкие возможности.

Подобные задачи можно выполнять и с помощью макросов. Например, чтобы при нажатии, пользователь попадал в определенную ячейку (М6), прописываем следующий код:

Sub Макрос 1()
Range(«M6»).Select
End Sub

Точно так же можно назначить макрос диаграмме, объектам WordArt, SmartAtr.

Как сделать кнопку сортировки в Excel для таблиц

Для показательного примера создайте тестовую таблицу как на рисунке:

Какого товара больше продано по месяцам.

  1. Вместо заголовков колонки таблицы добавим автофигуры, которые будут служить кнопками для сортировки по столбцам таблицы.
  2. Авто-фигуры как заголовки.

  3. В режиме Visual Basic — ALT+F11 в папке Modules вставляем новый модуль Module1. Для этого делаем по папке правый щелчок мышкой и выбираем: Insert-Module.
  4. Module1.

  5. Делаем двойной щелчок по Module1 и вводим в него следующий код:

  6. Sub Макрос1()
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«A2:A6«), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(«Лист1»).Sort
    .SetRange Range(«A2:D6»)
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос2()
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«B2:B6«), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(«Лист1»).Sort
    .SetRange Range(«A2:D6»)
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос3(
    )
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«C2:C6«), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(«Лист1»).Sort
    .SetRange Range(«A2:D6»)
    .Apply
    End With
    End Sub
    ‘————————————————
    Sub Макрос4()
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«D2:D6«), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(«Лист1»).Sort
    .SetRange Range(«A2:D6»)
    .Apply
    End With
    End Sub

    Примечание. Красным текстом отмечены отличающиеся параметры для каждого столбца.

  7. Назначаем каждой автофигуре свой макрос: для «Наименование» – Макрос1, а для «Май» – Макрос2 и т.д.

Все теперь достаточно только кликнуть по заголовку и таблица отсортирует данные относительно определенного столбца. Для удобства столбец «Наименование» Макрос1 сортирует по возрастанию благодаря параметру Order:=xlAscending. Во всех остальных столбцах присвоены макросы (2,3,4) с параметром Order:=xlDescending, который задает тип сортировки по убыванию. Чтобы видно было, в каком месяце было больше продано товара.

Скачать пример кнопки сортировки

Примечание. Такие простые макросы можно создать в автоматическом режиме без программирования или без написания VBA-кода, с помощью инструмента «Запись макроса».

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