【问题标题】:Set range for sort function设置排序功能的范围
【发布时间】:2017-09-23 09:46:26
【问题描述】:

我正在尝试为排序功能设置列的范围。

但是,范围从我使用匹配函数查找的某一行开始,并在单元格为空的地方结束。我该怎么做呢?

上线了:

Sheet3.Sort.SortFields.Add Key:=Range("G" & v & "G" & v.End(xlDown)), 
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

提前感谢您的帮助!

Sheet3.Sort.SortFields.Clear
v = Application.Match("GND", Sheet3.Range("C:C"), 0)
Sheet3.Range("A" & v & ":K" & v).Select
Sheet3.Range(Selection, Selection.End(xlDown)).Select
Sheet3.Sort.SortFields.Add Key:=Range("G" & v & "G" & v.End(xlDown)), 
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
Sheet3.Sort.Apply

【问题讨论】:

    标签: vba excel sorting match


    【解决方案1】:

    没有必要使用Select(它只会减慢你的代码运行时间),试试下面的代码:

    Option Explicit
    
    Sub SortRange()
    
    Dim v As Variant
    Dim Rng As Range
    
    With Sheet3
        .Sort.SortFields.Clear
        v = Application.Match("GND", .Range("C:C"), 0) '<-- make sure Match is not returning an #ERROR
        Set Rng = .Range(.Range("A" & v & ":K" & v), .Range("A" & v & ":K" & v).End(xlDown))
    
       Rng.Sort Key1:=.Range("G" & v), Order1:=xlDescending, DataOption1:=xlSortNormal
    End With
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-09
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多