VBA'da Excel, sıralama öğelerini sıralamak için CustomOrder parametresini kullanarak değerlerin sıralanmasına izin verir. Maalesef, öğe sıralaması virgüllerle sınırlandırıldı ve sıralama öğelerinden biri virgül içeriyor. Örneğin, ilk sütundaki verileri ikinci sütundaki kategorilere göre sıralamak istiyorum. "Hava, Kara veya Deniz" kategorisinde virgül bulunur.Kod özel bir sipariş ve virgül içeren değer içeren bir Excel VBA kodunu kodlayın
Data1 Aerospace Data2 Cyberspace Data3 Cyberspace Data4 Air, Land, or Sea Data5 Aerospace Data6 Air, Land, or Sea Data7 Cyberspace
Bir VBA makro kaydedebilir, bu gibi kod oluşturulmuş görünüyor:
MyWorksheet.Sort.SortFields.Add Key:=Range(_
"B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:= "Cyberspace,Air,Land,or Sea,Aerospace", _
DataOption:=xlSortNormal
MyWorksheet.Sort.Apply
Yani, özel sıralama düzeni "Siber" ardından "Hava, Kara, olmalı ya da Deniz ", sonra" Havacılık ". Bununla birlikte, ikinci kategori, virgüllerden dolayı üç kategori olarak ele alınmaktadır. "Hava, Kara veya Deniz" satırları altta sıralanır, çünkü Excel onlar için özel bir sıralama eşleşmesi bulamaz. CustomOrder'ın gömülü virgül içeren bir kategori ile çalışmasını sağlamanın bir yolu var mı?
Kategorinin etrafına çift tırnak işareti koymaya çalıştım ve sınırlayıcı virgülleri noktalı virgülle değiştirmeyi denedim (umut Excel'de virgül yerine noktalı virgül kabul eder). Ne işe yaramadı.
Orijinal örneğim çok net değildi. Lütfen güncellenen soruyu okuyun. –
@Dean Hill Cevabımı güncelledi. –
Bu çözüm benim için mükemmel çalıştı. Teşekkürler. –