क्या आप जानते हैं कि किसी इनपुटबॉक्स पर "ओके" पर क्लिक करने वाले उपयोगकर्ता और "रद्द करें" पर क्लिक करने वाले उपयोगकर्ता के बीच अंतर करना संभव है, भले ही उन्होंने कोई टेक्स्ट दर्ज न किया हो?
निम्नलिखित नमूना कोड पर विचार करें:
Sub InputBoxTest()
Dim Result As String
Result = InputBox("Leave this box blank")
If StrPtr(Result) = 0 Then
Debug.Print "User clicked [Cancel]"
ElseIf Len(Result) = 0 Then
Debug.Print "User clicked [OK]"
Else
Debug.Print "User can't follow instructions"
End If
End Sub
यहां परीक्षण कोड क्रिया में है:
यदि आप रुचि रखते हैं कि यह क्यों काम करता है, तो मैं स्टैक ओवरफ्लो पर निम्नलिखित प्रश्न की अनुशंसा करता हूं:VBA में StrPtr का उपयोग करने के लाभ और जोखिम क्या हैं? दोनों शीर्ष-मतदान वाले उत्तर (उपयोगकर्ताओं कॉमिन्टर्न और जीएसर्ग से) पृष्ठभूमि ज्ञान के लिए पढ़ने योग्य हैं।
बाहरी संदर्भ
InputBox फ़ंक्शन (एप्लिकेशन के लिए विज़ुअल बेसिक)Microsoft Docso365devxVBA में StrPtr फ़ंक्शन का उपयोग करने के क्या लाभ और जोखिम हैं? जब कोई उपयोगकर्ता किसी इनपुटबॉक्स को रद्द करता है, तो परीक्षण करने के तरीके की तलाश में, मैं StrPtr फ़ंक्शन पर ठोकर खाई। मेरा मानना है कि यह जाँचता है कि क्या एक चर को कभी एक मान दिया गया था और यदि यह कभी नहीं था तो शून्य लौटाता है स्टैक ओवरफ्लोक्रिसबी