簡體   English   中英

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

[英]VBA: Max of 2 columns gets sent to third column

我需要從兩列獲取最大值並將其發送到第三列。 這些列的大小都是一致的,但有時大小會有所不同,但它們都會在同一個單元格中開始。 例如:

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中生成可見的公式。 如果要忽略公式,請在第二個注釋后刪除該行,並且不會顯示公式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM