【发布时间】:2015-01-07 00:21:35
【问题描述】:
尝试按行的字母顺序对 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
我现在遇到的错误是底部的“下一个”的“编译错误:下一个没有 For”。但显然有一个 For 更高,据我所知,它们应该被链接,除非两者之间的“With”把事情搞砸了。我已经像上面一样单独尝试过 Next,以及“Next IngIndex”。
【问题讨论】: