VBA Macro для сортировки и применения условного форматирования к диапазону ячеек с динамическим числом строк

У меня есть диапазон (изображение ниже).

Скриншот Excel

Обратите внимание:

  • Диапазон генерируется другим приложением, поэтому количество строк постоянно меняется и не форматируется как таблица Excel.
  • Однако количество столбцов фиксировано.
  • Всегда есть строка Totals , которая всегда является последней строкой (ячейки за ней, однако, содержат формулу, оценивающую «)

Мне нужна помощь с макросом VBA, который будет сортировать диапазон с помощью заголовка D качестве ключа (по возрастанию):

[См. Ссылку на отсортированную таблицу ниже]

Обратите внимание:

  • Totals (которая всегда является последней строкой) должна игнорироваться и не сортироваться.

После такого сортирования я хочу, чтобы тот же макрос VBA применял условное форматирование к диапазону с использованием того же заголовка D что и ключ, – форматирование применяет границу вокруг диапазона, где D – то же самое:

Итоговый стол находится здесь: http://goo.gl/H118Lx

Обратите внимание:

  • Я не хочу, чтобы граница вокруг уникальных значений в заголовке D т.е. строки, где значение cell-value не больше 1.

Вам вообще не нужен VBA. Вам просто нужно лучше понять гибкость условных форматов. Из-за этого я собираюсь ответить на этот вопрос, хотя он плохой.

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

Формат: границы слева
Диапазон: A:A
Формула: =AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))

Формат: границы справа
Диапазон: E:E
Формула: =AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))

Формат: границы сверху
Диапазон: A:E
Формула: =AND($D1<>"",$D1<>OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0))

Формат: границы внизу
Диапазон: A:E
Формула: =AND($D1<>"",$D1=OFFSET($D1,-1,0),$D1<>OFFSET($D1,1,0))


Этот метод превратит этот лист:

До

… в этот лист:

После

  • Как удалить несколько строк без цикла в Excel VBA
  • Открыть файл Excel для чтения с помощью VBA без отображения
  • Полностью указать рабочий лист по кодовому имени
  • расплавить / переделать в excel с помощью VBA?
  • Отображение миллисекунд в Excel
  • Самый быстрый способ удалить строки, которые нельзя захватить с помощью SpecialCells
  • Переменная объекта или с не заданной переменной блока (Ошибка 91)
  • Вставка диапазона Excel в электронное письмо как изображение
  • Как скопировать строку в excel с использованием определенного слова и вставить в другой лист Excel?
  • Как получить старое значение измененной ячейки в Excel VBA?
  • Excel VBA - Пользовательская функция для преобразования строки в формулу
  • Interesting Posts

    Вложенный запрос Mongoose в Model по полю его ссылочной модели

    Как разбирать числовую строку, содержащую запятые, в целое число в java?

    Как получить последний сегмент пути uri

    Найти все дубликаты документов в коллекции MongoDB по ключевому полю

    Выборочно маршрутизируя трафик через Ethernet или Wi-Fi, с надлежащим DNS (Mac OS X 10.6)

    удаление пустого серого пространства в datagrid в c #

    iPhone App> Добавить распознавание голоса?

    Как легко редактировать файл управления в пакете deb

    Читать все телефонные номера контактов в android

    Linux keylogger без root или sudo! Это реально?

    Как восстановить контрольную сумму энергонезависимой памяти (NVM) контроллера Ethernet I219-V ноутбука ASUS?

    Как установить зависимости одноранговых связей npm автоматически?

    Unicode-эквиваленты для \ w и \ b в регулярных выражениях Java?

    Поддерживает ли Windows 10 звук 5.1 через USB

    phpMyAdmin – не удается подключиться – недействительные настройки – с тех пор, как я добавил пароль с правами root

    Давайте будем гением компьютера.