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

标签 vba excel

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

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

最佳答案

这是您的代码的一个很好的替代方案,只需确保声明您比较的第一列。该示例适用于 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 中创建了一个可见的公式。如果要忽略公式,请删除第二条注释后的行,公式将不会出现。

关于VBA:最多 2 列被发送到第三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45080191/

相关文章:

excel - 棘手的 Excel 查找

excel - 接收运行时错误 58 文件已存在但不存在

excel - 将记录集存储为类的实例?

excel - 替换 Excel 电源查询中的 SQL 查询参数

excel - 如何制作一个像数字 watch 一样的定时器?

excel - 每个唯一/不同值的计算

excel - 填充列中的可见单元格

c# - 如何将 ClosedXML 中的合并单元格范围内的图像居中

vba - Excel VBA打印机API,设置颜色和双面打印

vba - (VBA)如何从动态创建的复选框中检索选定的复选框数据