У меня есть таблица данных
A B C D E F(takes the max from each line)
1 3.93 2.09 2.49 0.89 1.11 3.93
2 0.97 0.34 0.69 0.08 1.06 1.06
3 4.21 4.40 2.90 1.14 1.45 4.40
...
Столбцы от A до E содержат значения, которые также имеют соответствующее форматирование (некоторые цифры - красные, другие оранжевые и т. Д.).
Столбец Fимеет формулу max()
для получения максимального значения из каждой строки таблицы.
Что я хочу сделать, так это получить формат ячейки, в которой происходит максимум.Есть ли автоматический способ сделать это?
Я видел, что это возможно с помощью макроса (я не знаком с макросами, поэтому на самом деле даже код в примере мне не совсем понятен): макрос Excel , однако мойСлучай осложняется тем, что ячейки в F могут получать значения от любой из ячеек в соответствующей строке, в зависимости от того, где происходит максимум.Поэтому я не могу просто сказать «скопировать формат ячейки A1 в ячейку E2», как в примере, который я связал.
Я бы сделал следующее:
If .Range("F1").Value2 = "A1" Then
Range("F1").Copy (.Range("A1"))
else
If .Range("F1").Value2 = "B1" Then
Range("F1").Copy (.Range("B1"))
else
If .Range("F1").Value2 = "C1" Then
Range("F1").Copy (.Range("C1"))
else
If .Range("F1").Value2 = "D1" Then
Range("F1").Copy (.Range("D1"))
else
If .Range("F1").Value2 = "E1" Then
Range("F1").Copy (.Range("E1"))
End If
Более того, я хочу сделать этодля каждого значения в столбце F. Нужен ли цикл for?Так, например, оно должно стать:
For i = 1 To 235
If .Range("Fi").Value2 = "Ai" Then
Range("Fi").Copy (.Range("Ai"))
... and so on with all the conditions
Это путь?