首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从范围中选择最大数值并自动向下填充

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

Stack Overflow用户
提问于 2018-01-20 01:54:01
回答 2查看 234关注 0票数 1

我希望VBA从range (U2:VN2)中选择最大值,并将该值粘贴到range VO2中,然后自动向下填充VO列,这样VO列将显示每一行的最大值,直到最后一行。

我尝试了以下几种方法

代码语言:javascript
复制
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

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-01-20 02:16:22

这应该足够了:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-01-20 02:40:41

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

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48346884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档