我是 VBA 的新手,因此我经常在 excel 中记录任何内容并使用记录的代码。很遗憾,我不理解以下排序代码。
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 方法的目的是什么?
感谢您的帮助! :)
最佳答案
第一行清除任何现有的排序信息(注意它实际上并没有排序任何东西)。 With block 简单地保存了在该 block 内的每一行上编写 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
关于excel - 我已经记录了一个 excel vba 排序但不理解代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24906771/