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

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

Скриншот Excel

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

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

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

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

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

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

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

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

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

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

  • Найти и заменить несколько значений в выбранных ячейках
  • Excel автоматически добавляет дополнительную строку с формулами для введенного количества лет
  • Макрос диаграммы, отображающий неправильные метки из непересекающихся видимых строк на отфильтрованном листе
  • Как я могу создать функцию щелчка между подсказкой ввода-вывода A1-A10 для ввода пользователем чисел в vba
  • Макрос для копирования отдельных значений из одного листа Excel в другой
  • Показывать или скрывать строки в листе excel при значении конкретной ячейки (excel 2007 и Windows 7)
  • Добавление опции вложения для запланированного сценария электронной почты vba
  • Как увеличить высоту строки в Excel с помощью X. Т.е. Добавить вертикальное заполнение ячейки
  • One Solution collect form web for “VBA Macro для сортировки и применения условного форматирования к диапазону ячеек с динамическим числом строк”

    Вам вообще не нужен 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))


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

    До

    … в этот лист:

    После

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