Первоначально мне нужно было выбрать верхние 5% выбранных элементов, но он не смог округлить количество выделенных элементов.Например: если в списке 25 элементов, 5% - это 1,25, а в условном формате выбирается только 1 элемент.Согласно моему отчету, он должен округлить его и выбрать 2 пункта.
Поскольку я не мог найти способ сделать это, я решил вручную рассчитать количество элементов, которые бы показывали, сколько нужно выделить (в ячейке).
- Было бы проще, если бы был способ заставить условный формат округлять количество выбранных элементов.
, например: .rank = 5 (но следует округлить его) .percent = True
Если это невозможно,
Я хотел бы выделить верхние значения X в столбце, используя условное форматирование.Значение X (ранг) вычисляется в ячейке и будет меняться при каждом запуске макроса.
Я пробовал приведенный ниже код, но он не работает.
Dim i As Integer
i = Workbooks("a.xlsm").Worksheets("b").Range("A1")
Selection.FormatConditions.AddTop10
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.TopBottom = xlTop10Top
.Rank = i
.Percent = False
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Я получаю сообщение об ошибке в строке ".rank = i", из-за которого я думаю, что невозможно назначить переменную там или я мог неправильно назначить ячейку.
Я также пытался ".rank = i.Value ", что также кажется неправильным (ошибка компиляции: неверный квалификатор)
Я новичок в vba, и любая помощь будет принята.
ps: usingoffice 365.
Спасибо
Обновление : приведенный выше код работает до тех пор, пока значение "i" не равно нулю.Мне удалось создать простой оператор If, чтобы предотвратить ошибку.
'In my report i cannot be below 0
If i > 0 Then
Insert the code above here
'If there is no data to be highlighted
Else
'Do Nothing
End If