我需要从两列获取最大值并将其发送到第三列。这些列的大小都是一致的,但有时大小会有所不同,但它们都会在同一个单元格中开始。例如:
5 8 -
6 2 -
6 5 -
带有破折号的列需要找到其他两个之间的最大值,完成的项目看起来像
5 8 8
6 2 6
6 5 6
我尝试录制一个宏但它使用的ActiveCell并不好。我希望这两个列是,例如,从C10开始的任何具有值的东西,以及从D10开始的所有值都有值,并且最大值发送到E10。
这是我录制的内容,尝试使用以下公式填充目标单元格:
ActiveCell.FormulaR1C1 = "=MAX(RC[-2],RC[-1])"
Selection.AutoFill Destination:=Range("E10:E300"), Type:=xlFillDefault
答案 0 :(得分:3)
这是代码的一个很好的替代方法,只需确保声明与之比较的第一列。该示例适用于A列的前10个单元格:
Option Explicit
Public Sub SelectMax()
Dim rngRange As Range
Dim rngCell As Range
Set rngRange = Range("A1:A10")
For Each rngCell In rngRange
'Without visible formula in Excel:
rngCell.Offset(0, 2) = WorksheetFunction.Max(rngCell, rngCell.Offset(0, 1))
'With visible formula in Excel
rngCell.Offset(0, 2).FormulaR1C1 = "=MAX(RC[-2],RC[-1])"
Next rngCell
End Sub
该示例在Excel中生成可见的公式。如果要忽略公式,请在第二个注释后删除该行,并且不会显示公式。