【问题标题】:Selecting maximum number value from a range and autofill down从范围中选择最大数值并自动填充
【发布时间】:2018-01-19 17:54:01
【问题描述】:

我希望 VBA 从范围 (U2:VN2) 中选择最大值并将值粘贴到范围 VO2 然后自动填充 VO 列,因此 VO 列将显示每一行的最大值,直到最后一行的值。

我尝试了以下

Sub MaxValueAutofill()

Dim r As Excel.Range
Dim rX As Excel.Range
Dim lastRow As Long
Dim lngMax As Double

Set r = Range("U2:VN2")
lngMax = Application.Max(r)
Set rX = r.Find(What:=lngMax, After:=Range("U2"), LookIn:=xlValues, _
                LookAt:=xlWhole, SearchOrder:=xlByRows,    
SearchDirection:=xlNext, MatchCase:=False)     

If Not rX Is Nothing Then
    Application.Goto rX, Scroll:=True
End If
Selection.Copy
Range("VO2").Select
ActiveSheet.Paste
lastRow = Range("A" & Rows.Count).End(xlUp).Row
Range("VO2").AutoFill Destination:=Range("VO2:VO" & lastRow)

End Sub

任何帮助将不胜感激。

【问题讨论】:

  • 欢迎来到SO,我找不到明确的问题,你能修改你的帖子并定义一个要解决的问题吗?请阅读>How to Ask

标签: vba excel


【解决方案1】:

这就足够了:

Sub Test()

For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
    Range("VO" & i).Value = Application.WorksheetFunction.Max(Range("U2:VN2"))
Next i

End Sub

【讨论】:

    【解决方案2】:

    基于“每行的最大值”的问题,听起来您不想将第 2 行的最大值复制到 VO 列的每一行中,因此自动填充 一路向下列是不合适的。您实际上需要一直自动填充“Max”公式,然后转换为值。

    Sub MaxValueAutofill()
        With ActiveSheet
            With .Range("VO2:VO" & .Range("A" & .Rows.Count).End(xlUp).Row)
                 .Formula = "=MAX(U2:VN2)"
                 .Value = .Value
            End With
        End With
    End Sub
    

    【讨论】:

    • 简单而高效。干得好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    相关资源
    最近更新 更多