如何按字母顺序对Excel中的行进行排序,而不包括排序中的所有列?

时间:2014-11-10 16:19:49

标签: excel vba sorting excel-vba

尝试按行按字母顺序对Excel中的数据进行排序,但不是每行的所有列中的数据。

例如: 按字母顺序排序J7到U7,然后按J8到U8排序,一直向下通过J2000到U2000,同时将每个项目保持在其行内(就像第7行中的所有单元格仍然应该在第7行的末尾)。

似乎我需要使用宏/ VBA,因为Excel只允许您按字母顺序一次排序一行。如果我选择多行进行排序,它仍然只对第一行进行排序。

对于我可以使用哪种宏,我做了一些研究,但似乎没有任何工作。我发现的一件事与数字类似,但不能按字母顺序排序。

这是我现在所得到的。我记录了一个自己选择和排序行的宏,以便我希望至少得到所有代码:

Sub Macro4()
'
' Macro4 Macro
'
' Keyboard Shortcut: Option+Cmd+j
'

Dim lngIndex As Long
Dim strArray(9 To 11000) As String
Dim intCounter As Integer
Dim x As Integer
intCounter = 1
x = 9
For lngIndex = LBound(strArray) To UBound(strArray)
intCounter = intCounter + 1
strArray(lngIndex) = intCounter
x = x + 1
Range("Jx:UNx").Select
ActiveWorkbook.Worksheets("export_729559 (3).csv").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("export_729559 (3).csv").Sort.SortFields.Add Key:= _
Range("Jx:UNx"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("export_729559 (3).csv").Sort
.SetRange Range("Jx:UNx")
.Header = xlNo
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
Next

End Sub

我现在得到的错误是"编译错误:下一个没有用于"那个"下一个"在底部。但显然有一个更高的上升,据我所知它们应该被链接,除非" With"介于两者之间是搞乱的事情。我已经尝试过Next,它就像它在上面一样,以及" Next IngIndex"。

1 个答案:

答案 0 :(得分:1)

你的With块没有结束。试试这样:

With ActiveWorkbook.Worksheets("export_729559 (3).csv").Sort
.SetRange Range("Jx:UNx")
.Header = xlNo
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With 'I have added this line to close your With block
Next