TOP

VBA-पाठ 7.2. शर्तें (Conditionss)

यदि...तब...अन्यथा और Select Case शर्तों की जाँच करने के अलावा, हम निम्नलिखित जाँचों का भी उपयोग कर सकते हैं:

  • डेटा प्रकारों की तुलना (फ़ंक्शन IsNumeric, IsDate, IsEmpty, ऑपरेटर इज़ नथिंग)
  • चर प्रकारों की तुलना (VarType फ़ंक्शन)
  • टेक्स्ट फ़ीड की तुलना करना (ऑपरेटर Like)

  • डेटा प्रकार की जाँच

    IsNumeric (वह फ़ंक्शन जो हमने पिछले पाठ में उपयोग किया था) यदि मान एक संख्या है तो TRUE (TRUE) लौटाता है, और यदि - कोई संख्या नहीं है तो FALSE (FALSE) लौटाता है:

    If IsNumeric(Range("A1")) = True Then 'यदि मान संख्या है...
    

    निम्नलिखित कोड पिछले वाले के समान प्रभाव उत्पन्न करता है (हमें = True को शामिल करने की आवश्यकता नहीं है क्योंकि निर्माण स्वयं एक स्थिति जांच है):

    If IsNumeric(Range("A1")) = True Then 'यदि मान संख्या है...
    

    यदि हम यह जांचना चाहते हैं कि कोई मान कोई संख्या नहीं है, तो हम इसे दो तरीकों से कर सकते हैं:

    If IsNumeric(Range("A1")) = False Then 'यदि मान एक संख्या नहीं है...
    
    If Not IsNumeric(Range("A1")) Then 'यदि मान एक संख्या नहीं है...
    

    आइए IsNumeric के समान कुछ और फ़ंक्शन देखें:

    If IsDate(Range("A1")) Then 'यदि मान दिनांक है...
    
    If IsEmpty(Range("A1")) Then 'यदि खाली है...
    
    If var_object Is Nothing Then 'यदि वस्तु परिभाषित नहीं है...
    

    किसी वेरिएबल के प्रकार की जाँच करना

    किसी वेरिएबल के प्रकार के आधार पर कमांड निष्पादित करने के लिए, हमें VarType फ़ंक्शन का उपयोग करने की आवश्यकता होगी।

    जैसे ही हम "=" चिह्न दर्ज करेंगे, वेरिएबल प्रकारों की सूची दिखाई देगी:

    If VarType(my_variable) = vbInteger Then 'यदि my_variable वैरिएबल प्रकार Integer है ...
    

    स्थिरांक का मान:

    नियत कीमत
    vbEmpty0
    vbNull1
    vbInteger2
    vbLong3
    vbSingle4
    vbDouble5
    vbCurrency6
    vbDate7
    vbString8
    vbObject9
    vbError10
     If VarType(my_variable) = vbInteger Then 'यदि my_variable वैरिएबल प्रकार Integer है ...
     'के समान है:
     If VarType(my_variable) = 2 Then 'यदि my_variable वैरिएबल प्रकार Integer है ...
    

    टेक्स्ट फ़ीड की तुलना करें (Like)

    कुछ समय पहले हमने निम्नलिखित कोड स्निपेट का उपयोग किया था:

    my_variable = "Example 12345"
    
    If my_variable = "Example 12345" Then '=> सत्य (TRUEe)
    

    इस मामले में दोनों टेप समान हैं, लेकिन यदि हम यह जांचना चाहते हैं कि चर में "12345" मान है या नहीं; अन्य वर्णों पर विचार किए बिना, हमें Like कमांड और ऑपरेटर * (तारांकन चिह्न) का उपयोग उस मूल्य से पहले और बाद में करना चाहिए जिसे हम ढूंढ रहे हैं।

    ऑपरेटर * (तारांकन चिह्न) को इस प्रकार परिभाषित किया गया है: कोई भी वर्ण या वर्णों का सेट:

    my_variable = "Example 12345"
    
    If my_variable Like "*12345*" Then '=> सत्य (TRUEe)
    

    ऑपरेटर # (हैश) को इस प्रकार डिकोड किया गया है: 0 से 9 तक कोई भी एकल संख्यात्मक वर्ण:

    my_variable = "Example 12345"
    
    If my_variable Like "Example 12###" Then '=> सत्य (TRUEe)
    

    ऑपरेटर? (प्रश्न चिह्न) का अर्थ इस प्रकार है: कोई एकल वर्ण:

    my_variable = "Example 12345"
    
    If my_variable Like "?xample?1234?" Then '=> सत्य (TRUEe)
    

    हम विशिष्ट वर्णों या वर्णों के समूह का भी इसी प्रकार उपयोग कर सकते हैं:

    my_variable = "Example 12345"
    
    If my_variable Like "[DEF]xample 1234[4-7]" Then '=> सत्य (TRUEe)
    

    ऑपरेटर! (विस्मयादिबोधक बिंदु) को [ के बाद जोड़ने पर इसका अर्थ होगा: कोई भी वर्ण जो वर्गाकार कोष्ठक में बंद नहीं है:

    my_variable = "Example 12345"
    
    If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> सत्य (TRUEe)
    
    इस संदर्भ में, अपरकेस वर्ण समान लोअरकेस वर्णों के समतुल्य नहीं हैं। यदि आप अपरकेस और लोअरकेस वर्णों के बीच अंतर नहीं करना चाहते हैं, तो मॉड्यूल की शुरुआत में बस Option Compare Text कमांड लिखें।