2017-04-26 84 views
1

我想設置排序功能列的範圍。設置範圍爲排序功能

但是,範圍從某一行開始,我使用匹配函數來查找並結束單元格爲空的位置。我如何去做這件事?

其上線:

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 

回答

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 

enter image description here

+0

現在的工作感謝您的幫助 –