从范围中选择最大数值并自动填充

Posted

技术标签:

【中文标题】从范围中选择最大数值并自动填充【英文标题】: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 【参考方案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

【讨论】:

简单而高效。干得好!

以上是关于从范围中选择最大数值并自动填充的主要内容,如果未能解决你的问题,请参考以下文章

Excel表格如何实现根据数值自动填充不同的颜色

VBA Excel 2010 - 自动填充不填充

excel怎么设置函数自动填充颜色

EXCEL中相同/不同数值的行自动填充相同/不同的颜色.

如何将输入/选择值从网站保存到 XML/JSON 文件并使用 JavaScript 自动加载再次填充它们

范围类上的自动填充错误