Excel 将VBA代码更改为按B列排序,而不是按现在的操作
我在这些论坛上找到了这段代码。我一直在试图操纵代码来完成我需要做的事情,但我正在努力完成一件事。特别是,我希望参数为:Excel 将VBA代码更改为按B列排序,而不是按现在的操作,excel,vba,sorting,Excel,Vba,Sorting,我在这些论坛上找到了这段代码。我一直在试图操纵代码来完成我需要做的事情,但我正在努力完成一件事。特别是,我希望参数为: 排序方式:B列 排序:单元格值 顺序:从大到小 我正在努力解决的问题是如何让它按B列排序。我认为目前它是按D列排序的;这是我正在使用的excel文件中的最后一列。但是,我需要它按B列排序,但我不知道如何更改它。有人知道如何操作下面的代码来始终按B列排序吗 Sub RangeSelectionPrompt() Dim rngStart As Range Di
- 排序方式:B列李>
- 排序:单元格值李>
- 顺序:从大到小
Sub RangeSelectionPrompt()
Dim rngStart As Range
Dim WS As Worksheet
On Error Resume Next
Set rngStart = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)
Err.Clear
On Error GoTo 0
If rngStart Is Nothing Then
MsgBox "User cancelled"
Else
Set WS = rngStart.Parent
WS.Sort.SortFields.Clear
With rngStart
WS.Sort.SortFields.Add Key:= _
.Columns(.Columns.Count), SortOn:=xlSortOnValues, Order:= _
xlDescending, DataOption:=xlSortNormal
End With
With WS.Sort
.SetRange rngStart
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
End Sub
rngStart.WS.Sort.SortFields
元素的关键元素定义了如何对数据进行排序。
使用命令WS.Sort.SortFields.Add
,可以向Sort函数添加排序键。您可以向其中添加多个键(首先对列A进行排序,然后对列B进行排序)
假设要排序的范围从A列开始,并希望按B列排序,则可能需要使用@BigBen solution,并将键设置为。Columns(2)
此键的下一个参数将让您决定排序的方式:SortOn:=xlSortOnValues,Order:=xlDescending,
。您必须了解,排序将基于值。然后下降。所以这应该是你想要的方式
你可以在这里找到更多关于sortfield方法的信息:将
.Columns(.Columns.Count)
更改为WS.Columns(2)
?我爱你,大本。你让我开心。我不知道该怎么办,但你给了我一个教训。