我有一个数据表
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 macro,但是事实使我的情况变得复杂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
这是要走的路吗?
答案 0 :(得分:0)
我认为SJR的想法正确。
这是在代码中实现的想法。
Sub colorMe()
For i = 1 To 235
Cells(i, WorksheetFunction.Match(WorksheetFunction.Max(Range("A" & i & ":E" & i)), Range("A" & i & ":E" & i), 0)).Copy
Cells(i, 6).PasteSpecial xlPasteFormats
Next i
End Sub
这是最终结果:Macro Result
希望这会有所帮助!