从范围中选择最大数值并自动填充
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
【讨论】:
简单而高效。干得好!以上是关于从范围中选择最大数值并自动填充的主要内容,如果未能解决你的问题,请参考以下文章