Excel-从另一个单元格获取格式

时间:2019-03-01 14:08:31

标签: excel

我有一个数据表

    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

这是要走的路吗?

1 个答案:

答案 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

希望这会有所帮助!