【发布时间】:2011-08-31 08:27:02
【问题描述】:
在 VBA 中,Excel 允许使用 CustomOrder 参数对值进行排序,以选择排序项目的顺序。不幸的是,项目序列由逗号分隔,我的排序项目之一包含逗号。例如,我想按第二列中的类别对第一列中的数据进行排序。 “空中、陆地或海洋”类别包含逗号。
Data1 航空航天 Data2 网络空间 Data3 网络空间 Data4 空中、陆地或海上 Data5 航空航天 Data6 空中、陆地或海上 Data7 网络空间
如果您录制 VBA 宏,则创建的代码如下所示:
MyWorksheet.Sort.SortFields.Add Key:=Range( _
"B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:= "Cyberspace,Air,Land,or Sea,Aerospace", _
DataOption:=xlSortNormal
MyWorksheet.Sort.Apply
因此,自定义排序顺序应该是“Cyberspace”,然后是“Air、Land 或 Sea”,然后是“Aerospace”。但是,由于逗号,第二个类别被视为三个类别。带有“Air、Land 或 Sea”的行被排序到底部,因为 Excel 没有为它们找到自定义排序匹配项。 有没有办法让 CustomOrder 使用包含嵌入式逗号的类别?
我尝试在类别周围加上双引号,并尝试用分号替换分隔符逗号(希望 Excel 接受分号而不是逗号)。都没有用。
【问题讨论】: