ज़ीरो पैडिंग

Excel VBA में नंबरों को स्ट्रिंग के रूप में काम करते समय, अक्सर आगे ज़ीरो जोड़कर निश्चित अंकों तक पहुंचाने की आवश्यकता होती है। उदाहरण के लिए, "0123" या "0042" जैसे 4-अंकीय फॉर्मेट।

VBA में ज़ीरो पैडिंग के कई तरीके हैं। यह पेज तीन सामान्य दृष्टिकोण प्रस्तुत करता है।

Format फंक्शन का उपयोग

Format फंक्शन नंबरों को निर्दिष्ट फॉर्मेट में स्ट्रिंग में बदलता है:

format_zero_pad.bas
Dim number As Integer
Dim result As String

number = 42
result = Format(number, "0000")

Debug.Print result ' "0042"

दूसरा आर्गुमेंट फॉर्मेट पैटर्न निर्दिष्ट करता है। वांछित अंकों की संख्या के बराबर ज़ीरो का उपयोग करें।

Right और String फंक्शन

यह विधि पहले आवश्यक ज़ीरो बनाती है, फिर मूल नंबर जोड़ती है।

right_string.bas
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 से कॉल करती है:

worksheet_text.bas
Dim number As Integer
Dim result As String

number = 42
result = Application.WorksheetFunction.Text(number, "0000")

Debug.Print result ' "0042"

पुन: प्रयोज्य फंक्शन बनाएं

बेहतर कोड मेंटेनेबिलिटी के लिए इन विधियों को फंक्शन के रूप में परिभाषित करें:

zero_pad_function.bas
'*-------------------------------------------------------------
'* नंबर को निर्दिष्ट अंकों तक ज़ीरो से पैड करें
'*
'* @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.TextExcel यूजर्स के लिए परिचितक्षेत्रीय फॉर्मेट अंतर

अधिकांश मामलों में, Format फंक्शन की सिफारिश की जाती है।

#VBA #ज़ीरो पैडिंग #Format #स्ट्रिंग फॉर्मेटिंग