VBA:最多2列被发送到第三列

我需要从两列中获取最大值并将其发送到第三列。 这些列的大小都是统一的,但是有时候大小会有所不同,但是它们都将在同一个单元中开始。 例如:

5 8 –

6 2 –

6 5 –

带有破折号的列需要在另外两个之间find最大值,完成的项目看起来像

5 8 8

6 2 6

6 5 6

我试图录制一个macros,但它使用的ActiveCell不好。 我希望这两列是说,从C10开始的任何有值的东西,一切从D10开始,有一个值,最大值发送到E10。

这就是我所logging的,试图用公式填充目标单元格:

ActiveCell.FormulaR1C1 = "=MAX(RC[-2],RC[-1])" Selection.AutoFill Destination:=Range("E10:E300"), Type:=xlFillDefault 

这是你的代码的一个很好的select,只要确保声明你比较的第一列。 该示例适用于列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中创build一个可见的公式。 如果要忽略公式,请在第二个注释之后删除该行,否则公式将不会出现。