Code Excel VBA sorte avec un ordre personnalisé et d'une valeur contenant des virgules

En VBA, Excel permet de trier les valeurs à l'aide de la CustomOrder paramètre pour choisir la séquence d'éléments sont commandés. Malheureusement, la séquence des éléments est délimité par des virgules et un de mes trier les éléments contient des virgules. Par exemple, je veux trier les données dans la première colonne par catégories dans la deuxième colonne. "L'Air, la Terre ou de la Mer" catégorie contient des virgules.

Data1 De L'Aérospatiale 
Data2 Le Cyberespace 
Data3 Le Cyberespace 
Data4 de l'Air, de la Terre ou de la Mer 
Data5 De L'Aérospatiale 
Data6 de l'Air, de la Terre ou de la Mer 
Data7 Le Cyberespace 

Si vous enregistrez une macro VBA, le code créé ressemble à ceci:

MyWorksheet.Sort.SortFields.Add Key:=Range( _
    "B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, _
    CustomOrder:= "Cyberspace,Air,Land,or Sea,Aerospace", _
    DataOption:=xlSortNormal  
MyWorksheet.Sort.Apply

Donc, l'ordre de tri personnalisé doit être "Cyberespace", puis "l'Air, la Terre ou de la Mer", puis "Aérospatiale". Cependant, la deuxième catégorie est traitée comme trois catégories en raison de la virgule. Les lignes avec "l'Air, la Terre ou de la Mer" rentrer dans l'ordre vers le bas, car Excel ne trouve pas de tri personnalisé pour eux.
Est-il un moyen d'obtenir CustomOrder de travailler avec une catégorie qui contient des virgules?

J'ai essayé de mettre des guillemets autour de la catégorie et j'ai essayé de remplacer le séparateur des virgules par des points-virgules (dans l'espoir Excel n'accepte qu'un point-virgule au lieu d'une virgule). Ni travaillé.

OriginalL'auteur Dean Hill | 2011-05-23