वीबीए में एक मान, एक्सेल अनुक्रम आइटम का ऑर्डर करने के लिए कस्टमऑर्डर पैरामीटर का उपयोग करके मूल्यों को सॉर्ट करने की अनुमति देता है। दुर्भाग्यवश, वस्तुओं का अनुक्रम अल्पविरामों द्वारा सीमित है और मेरे सॉर्ट आइटमों में से एक को अल्पविराम शामिल है। उदाहरण के लिए, मैं दूसरे कॉलम में श्रेणियों द्वारा डेटा को पहले कॉलम में सॉर्ट करना चाहता हूं। "वायु, भूमि, या सागर" श्रेणी में अल्पविराम शामिल हैं।एक कस्टम ऑर्डर के साथ एक एक्सेल वीबीए सॉर्ट कोड और कॉमा
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
तो, कस्टम सॉर्ट क्रम "साइबरस्पेस" फिर "हवा, जमीन, होना चाहिए या सागर ", फिर" एयरोस्पेस "। हालांकि, अल्पविराम की वजह से दूसरी श्रेणी को तीन श्रेणियों के रूप में माना जाता है। "वायु, भूमि, या सागर" वाली पंक्तियों को नीचे से क्रमबद्ध किया जाता है क्योंकि एक्सेल को उनके लिए एक कस्टम सॉर्ट मैच नहीं मिलता है। क्या कस्टमऑर्डर को उस श्रेणी के साथ काम करने का कोई तरीका है जिसमें एम्बेडेड कॉमा शामिल हैं?
मैंने श्रेणी के चारों ओर डबल कोट्स डालने की कोशिश की और मैंने अर्धविरामों के साथ डेलीमीटर कॉमा को बदलने की कोशिश की (आशा है कि एक्सेल अल्पविराम के बजाय अर्धविराम स्वीकार करेगा)। न तो काम किया।
मेरा मूल उदाहरण बहुत स्पष्ट नहीं था। कृपया अद्यतन प्रश्न पढ़ें। –
@ डीन हिल ने मेरा जवाब अपडेट किया। –
यह समाधान मेरे लिए पूरी तरह से काम किया। धन्यवाद। –