ज़ीरो पैडिंग
Excel VBA में नंबरों को स्ट्रिंग के रूप में काम करते समय, अक्सर आगे ज़ीरो जोड़कर निश्चित अंकों तक पहुंचाने की आवश्यकता होती है। उदाहरण के लिए, "0123" या "0042" जैसे 4-अंकीय फॉर्मेट।
VBA में ज़ीरो पैडिंग के कई तरीके हैं। यह पेज तीन सामान्य दृष्टिकोण प्रस्तुत करता है।
Format फंक्शन का उपयोग
Format फंक्शन नंबरों को निर्दिष्ट फॉर्मेट में स्ट्रिंग में बदलता है:
Dim number As Integer
Dim result As String
number = 42
result = Format(number, "0000")
Debug.Print result ' "0042"
दूसरा आर्गुमेंट फॉर्मेट पैटर्न निर्दिष्ट करता है। वांछित अंकों की संख्या के बराबर ज़ीरो का उपयोग करें।
Right और String फंक्शन
यह विधि पहले आवश्यक ज़ीरो बनाती है, फिर मूल नंबर जोड़ती है।
Dim number As Integer
Dim result As String
Dim digits As Integer
number = 42
digits = 4
result = Right(String(digits, "0") & number, digits)
Debug.Print result ' "0042"
String फंक्शन एक कैरेक्टर को निर्दिष्ट बार दोहराता है:
Debug.Print String(4, "0") ' "0000"
Application.WorksheetFunction.Text
यह विधि Excel की TEXT फंक्शन को VBA से कॉल करती है:
Dim number As Integer
Dim result As String
number = 42
result = Application.WorksheetFunction.Text(number, "0000")
Debug.Print result ' "0042"
पुन: प्रयोज्य फंक्शन बनाएं
बेहतर कोड मेंटेनेबिलिटी के लिए इन विधियों को फंक्शन के रूप में परिभाषित करें:
'*-------------------------------------------------------------
'* नंबर को निर्दिष्ट अंकों तक ज़ीरो से पैड करें
'*
'* @param number पैड करने वाला नंबर
'* @param digits वांछित अंकों की संख्या
'* @return ज़ीरो-पैडेड स्ट्रिंग
'*-------------------------------------------------------------
Public Function ZeroPaddedValue(ByVal number As Integer, ByVal digits As Integer) As String
ZeroPaddedValue = Format(number, String(digits, "0"))
End Function
Private Sub TestZeroPadded()
Debug.Print ZeroPaddedValue(42, 4) ' "0042"
End Sub
महत्वपूर्ण विचार
वेरिएबल टाइप पर ध्यान दें
सभी विधियां स्ट्रिंग लौटाती हैं। यदि आपको परिणाम को नंबर के रूप में उपयोग करना है, तो आवश्यकतानुसार न्यूमेरिक टाइप में बदलें।
फॉर्मेट विनिर्देश
Excel सेल में लिखते समय, सेल का फॉर्मेट मूल्य को नंबर के रूप में व्याख्या कर सकता है। समाधान:
- सेल फॉर्मेट को टेक्स्ट पर सेट करें:
Range("A1").NumberFormat = "@" - आउटपुट के पहले
'जोड़ें
सारांश
| विधि | फायदे | नुकसान |
|---|---|---|
| Format | सरल, बहुमुखी | कोई महत्वपूर्ण नहीं |
| Right + String | फॉर्मेट स्ट्रिंग अनावश्यक | जटिल कोड |
| WorksheetFunction.Text | Excel यूजर्स के लिए परिचित | क्षेत्रीय फॉर्मेट अंतर |
अधिकांश मामलों में, Format फंक्शन की सिफारिश की जाती है।