Как отсортировать диапазоны по двойному щелчку

Что делает макрос: При распространении отчетов Excel для ваших клиентов иногда нужно добавить пару фишек. Одним из вариантов — возможность отсортировать диапазоны при использовании двойного щелчка. Хотя это может показаться сложным, но это довольно легко при помощи этого макроса.

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

В этом макросе, мы сначала находим последнюю непустую строку (используя Макрос: «Как найти и выбрать первую пустую строку или
столбец»
). Затем мы используем номер строки для определения целевого диапазона строк, где нам нужно сортировать. С помощью метода сортировки, мы сортируем целевые строки в колонке двойным щелчком.
Двойной щелчок включит режим редактирования, который можно отменить, нажав клавишу Esc.

Код макроса

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
'Шаг 1: Объявляем переменные
Dim LastRow As Long
'Шаг 2: Найти последнюю непустую строку
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'Шаг 3: Сортировка по возрастанию столбца двойным щелчком
Rows("6:" & LastRow).Sort _
Key1:=Cells(6, ActiveCell.Column), _
Order1:=xlAscending
End Sub

Как этот код работает

  1. Сначала мы объявляем переменную Long Integer под названием LastRow — держатель номера строки последней непустой строки.
  2. На шаге 2 мы фиксируем последнюю непустую строку, начиная с самой последней строки в листе и используя свойство End, чтобы перейти к первой непустой ячейке (эквивалент перейти к ячейке A1048576, нажав Ctrl + Shift + Стрелка вверх на клавиатуре).
  3. Обратите внимание, что вам необходимо изменить номер столбца в этой ячейке на тот, который подходит для набора данных. То есть, если ваша таблица начинается на колонке J, вам нужно будет изменить строку на шаге 2 ячейки (Rows.Count, 10) .END (xlUp) .Row, так как столбец J является десятый столбец на рабочем листе.
  4. На этом шаге мы определяем общий диапазон строк для пользовательских данных.
    Имейте в виду, что диапазон строк должен начинаться с первой строки данных (за исключением заголовков) и заканчиваться последней непустой строкой. В этом случае набор данных начинается на строке 6. Таким образом, мы используем метод сортировки по строкам («6:» & LastRow).

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

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта, найти свой проект / имя рабочей книги и нажмите на знак плюс рядом с ней, чтобы увидеть все листы.
  3. Нажмите на лист, из которого вы хотите, чтобы вызвать код.
  4. Выберите событие BeforeDoubleClick из событий в раскрывающемся списке.
  5. Введите или вставьте код.
Оцените статью
Добавить комментарий