В VBA Excel позволяет сортировать значения с помощью параметра CustomOrder, чтобы выбрать упорядоченные элементы последовательности. К сожалению, последовательность элементов разделена запятыми, и один из моих элементов сортировки содержит запятые. Например, я хочу отсортировать данные в первом столбце по категориям во втором столбце. Категория "Воздух, Земля или Море" содержит запятые.
Data1 Aerospace
Data2 Cyberspace
Data3 Cyberspace
Data4 Air, Land, or Sea
Data5 Aerospace
Data6 Air, Land, or Sea
Data7 Cyberspace
Если вы записываете макрос 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
Итак, пользовательский порядок сортировки должен быть «Киберпространство», затем «Воздух, Земля или Море», а затем «Аэрокосмос». Однако вторая категория рассматривается как три категории из-за запятых. Строки с надписью «Воздух, Земля или Море» сортируются снизу, потому что Excel не находит для них пользовательскую сортировку.
Есть ли способ заставить CustomOrder работать с категорией, содержащей встроенные запятые?
Я попытался поместить двойные кавычки вокруг категории и попытался заменить запятые с разделителями точкой с запятой (в надежде, что Excel примет точку с запятой вместо запятой). Ни один не работал.