我已经logging了一个excel的vbasorting,但不理解代码行
我是VBA新手,因此我经常在Excel中logging任何东西,并使用logging的代码。 不幸的是我不明白以下的sorting代码。
Private Sub SortType() ActiveWorkbook.Worksheets("Requirements").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Requirements").Sort.SortFields.Add Key:=Range( _ "C6:C" & usedRows), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Requirements").Sort .SetRange Range("B6:T" & usedRows) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
什么第一行Sort.SortFields.Clear
(我真的需要它?)和什么我需要With方法?
感谢您的帮助! 🙂
第一行清除任何现有的sorting信息(请注意,它实际上没有sorting任何东西)。 With块简单地保存了写入ActiveWorkbook.Worksheets("Requirements").Sort
。 没有它,代码将不得不是:
Private Sub SortType() ActiveWorkbook.Worksheets("Requirements").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Requirements").Sort.SortFields.Add Key:=Range( _ "C6:C" & usedRows), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal ActiveWorkbook.Worksheets("Requirements").Sort.SetRange Range("B6:T" & usedRows) ActiveWorkbook.Worksheets("Requirements").Sort.Header = xlGuess ActiveWorkbook.Worksheets("Requirements").Sort.MatchCase = False ActiveWorkbook.Worksheets("Requirements").Sort.Orientation = xlTopToBottom ActiveWorkbook.Worksheets("Requirements").Sort.SortMethod = xlPinYin ActiveWorkbook.Worksheets("Requirements").Sort.Apply End Sub
第一行Sort.SortFields.Clear是什么
从这里 , SortField对象包含Worksheet,ListObject和AutoFilter对象的所有sorting信息 。
所以它删除任何现有的自动AutoFiltering
等
而为了什么我需要With方法?
它整理代码(也就是说,你的代码行会比ActiveWorkbook.Worksheets("Requirements").Sort.SetRange Range("B6:T" & usedRows)
,但是当使用macroslogging器的时候, With
作为一个例子,你可以像这样修改你的代码:
重新切割
Sub BottomUp() Dim ws As Worksheet Dim rng1 As Range Set ws = Worksheets("Requirements") ws.Sort.SortFields.Clear Set rng1 = ws.Range(ws.[B6], ws.Cells(Rows.Count, "T").End(xlUp)) rng1.Sort ws.[c6], xlAscending End Sub
SortFields
是一个值的集合,它描述了sorting范围中的哪些列被sorting,以何种方式,因此在执行新sorting之前删除这些数据是有意义的。
With .. End With
句法简单,简单地保存重复input随后打开的对象名称With
语句。