【问题标题】:Change Backcolor of Excel Cells in Range with Highest Value更改最大值范围内 Excel 单元格的背景色
【发布时间】:2020-01-16 00:18:03
【问题描述】:

因此,此代码获取范围内单元格的最大值。但我想要做的是将单元格的背面颜色更改为具有最高值的黄色。有什么建议吗?

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

【问题讨论】:

  • 为什么不只使用条件格式?根本不需要 VBA。如果 2 个单元格具有最大值怎么办?如果确实必须是 VBA,请查看 WorksheetFunction.Match method 以获取 dblMax 值的行号。

标签: excel vba


【解决方案1】:

条件格式

您只需使用条件格式就可以做到这一点,而无需任何 VBA。只需格式化上面的 1 值。如果 2 个值具有相同的最大值,则两者都被格式化。

图 1:条件格式:仅格式化上限值或下限值(上 1) • 对不起德语屏幕截图。

VBA 灵魂

可以使用WorksheetFunction.Match method获取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

请注意,如果 2 存在,VBA 只会找到第一个最大值并为其着色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2017-03-11
    • 2012-06-10
    • 2011-09-24
    相关资源
    最近更新 更多