我希望VBA从range (U2:VN2)中选择最大值,并将该值粘贴到range 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任何帮助都将不胜感激。
发布于 2018-01-20 02:16:22
这应该足够了:
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发布于 2018-01-20 02:40:41
根据“每行的最大值”这个问题,听起来不像是想要将第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 Subhttps://stackoverflow.com/questions/48346884
复制相似问题