Изменить задний цвет ячеек Excel в диапазоне с наибольшим значением - PullRequest
0 голосов
/ 15 января 2020

Таким образом, этот код получает наибольшее значение ячейки в диапазоне. Но то, что я пытаюсь сделать, это изменить задний цвет ячеек на желтый с самым высоким значением. Есть предложения?

Dim rng As Range
Dim dblMax As Double



'Set range from which to determine largest value
Set rng = Sheet1.Range("A1:A100")


'Worksheet function MAX returns the largest value in a range 

dblMax = Application.WorksheetFunction.Max(rng)

'Displays largest value
MsgBox dblMax

1 Ответ

1 голос
/ 15 января 2020

Условное форматирование

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

enter image description here Изображение 1: Условное форматирование: форматирование только верхних или нижних значений (верхний 1) • Извините для немецкого скриншота.

VBA soultion

Вы можете использовать метод WorksheetFunction.Match , чтобы получить номер строки значения dblMax :

'Set range from which to determine largest value
Dim rng As Range
Set rng = Sheet1.Range("A1:A100")

'Worksheet function MAX returns the largest value in a range
Dim dblMax As Double
dblMax = Application.WorksheetFunction.Max(rng)

'Find row number of max value
Dim MaxRow As Double
MaxRow = Application.WorksheetFunction.Match(dblMax, rng, 0)

'make it yellow
rng.Cells(MaxRow, 1).Interior.Color = vbYellow

Обратите внимание, что VBA найдет находку и раскрасит первое максимальное значение только при наличии 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...