
У меня есть диапазон (изображение ниже).
Обратите внимание, что:
- Диапазон генерируется другим приложением, поэтому количество строк постоянно меняется и не форматируется как «таблица» Excel.
- Однако количество столбцов фиксировано.
- Всегда есть
Totals
строка, которая всегда является последней (ячейки за ней, однако, содержат формулу, вычисляющую значение '')
Мне нужна помощь с макросом VBA, который будет сортировать диапазон, используя заголовок D
в качестве ключа (по возрастанию):
[См. ссылку на отсортированную таблицу ниже]
Обратите внимание, что:
- Строку
Totals
(которая всегда является последней) следует игнорировать и не сортировать.
После этой сортировки я хочу, чтобы тот же макрос VBA применил условное форматирование к диапазону, используя тот же заголовок D
в качестве ключа — форматирование применяет границу вокруг диапазона, где D
то же самое:
Финальная таблица здесь:http://goo.gl/H118Lx
Обратите внимание, что:
- Мне не нужны границы вокруг уникальных значений в заголовке,
D
т.е. строк, где количество значений ячеек не больше 1.
решение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))
Этот метод перевернет этот лист:
... в этот лист: