खोज…


टिप्पणियों

VBA में स्ट्रिंग-शाब्दिक का असाइनमेंट IDE की सीमाओं और वर्तमान उपयोगकर्ता की भाषा सेटिंग्स के कोडपेज द्वारा सीमित है। ऊपर दिए गए उदाहरण बच गए तार, विशेष, गैर-मुद्रण योग्य तार और लंबे स्ट्रिंग-शाब्दिक के विशेष मामलों को प्रदर्शित करते हैं।

ऐसे स्ट्रिंग-शाब्दिक, जिनमें एक निश्चित कोडपेज के लिए विशिष्ट अक्षर होते हैं, असाइन करते समय, आपको एक अलग यूनिकोड रिसोर्स फ़ाइल से स्ट्रिंग असाइन करके अंतर्राष्ट्रीयकरण संबंधी चिंताओं पर विचार करना पड़ सकता है।

"चरित्र" से बचकर

VBA वाक्य रचना कि एक स्ट्रिंग-शाब्दिक के भीतर प्रदर्शित की आवश्यकता है " , निशान इसलिए जब अपने स्ट्रिंग की जरूरत है उद्धरण चिह्नों को रोकने के लिए, आप से बचने के लिए की आवश्यकता होगी / बढ़ाएँ " एक अतिरिक्त के साथ चरित्र " तो VBA समझता है कि जो आपका उद्देश्य "" होने के लिए " स्ट्रिंग " रूप में व्याख्या की गई।

'The following 2 lines produce the same output
Debug.Print "The man said, ""Never use air-quotes"""
Debug.Print "The man said, " & """" & "Never use air-quotes" & """"

'Output:
'The man said, "Never use air-quotes"
'The man said, "Never use air-quotes"

लंबे स्ट्रिंग शाब्दिक असाइन करना

VBA संपादक केवल 1023 वर्ण प्रति पंक्ति की अनुमति देता है, लेकिन आम तौर पर केवल पहले 100-150 अक्षर स्क्रॉल किए बिना दिखाई देते हैं। यदि आपको लंबे स्ट्रिंग शाब्दिक असाइन करने की आवश्यकता है, लेकिन आप अपने कोड को पठनीय रखना चाहते हैं, तो आपको अपने स्ट्रिंग को असाइन करने के लिए लाइन-कंटीन्यूएशन और कॉन्कैटेशन का उपयोग करना होगा।

Debug.Print "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " & _
            "Integer hendrerit maximus arcu, ut elementum odio varius " & _
            "nec. Integer ipsum enim, iaculis et egestas ac, condiment" & _
            "um ut tellus."
'Output:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit maximus arcu, ut elementum odio varius nec. Integer ipsum enim, iaculis et egestas ac, condimentum ut tellus.

VBA आपको सीमित संख्या में निरंतरता का उपयोग करने देगा (वास्तविक संख्या निरंतर-ब्लॉक के भीतर प्रत्येक पंक्ति की लंबाई से भिन्न होती है), इसलिए यदि आपके पास बहुत लंबे तार हैं, तो आपको समनुदेशन के साथ असाइन करना और पुनः असाइन करना होगा ।

Dim loremIpsum As String

'Assign the first part of the string
loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " & _
              "Integer hendrerit maximus arcu, ut elementum odio varius "
'Re-assign with the previous value AND the next section of the string
loremIpsum = loremIpsum & _
            "nec. Integer ipsum enim, iaculis et egestas ac, condiment" & _
            "um ut tellus."

Debug.Print loremIpsum

'Output:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer hendrerit maximus arcu, ut elementum odio varius nec. Integer ipsum enim, iaculis et egestas ac, condimentum ut tellus.

VBA स्ट्रिंग स्थिरांक का उपयोग करना

VBA विशेष वर्णों के लिए कई स्ट्रिंग स्थिरांक परिभाषित करता है:

  • vbCr: सी-स्टाइल भाषाओं में कैरिज-रिटर्न '' के रूप में "आर"।
  • vbLf: सी-स्टाइल भाषाओं में लाइन-फीड को "\ n" के समान।
  • vbCrLf: कैरिज-रिटर्न और लाइन-फीड (विंडोज में एक नई लाइन)
  • vbTab: टैब चरित्र
  • vbNullString: एक खाली स्ट्रिंग, जैसे ""

विशेष-पात्रों के साथ स्ट्रिंग-शाब्दिक निर्माण के लिए आप इन स्थिरांक का उपयोग संघनन और अन्य स्ट्रिंग कार्यों के साथ कर सकते हैं।

Debug.Print "Hello " & vbCrLf & "World"
'Output:
'Hello
'World

Debug.Print vbTab & "Hello" & vbTab & "World"
'Output:
'    Hello    World

Dim EmptyString As String
EmptyString = vbNullString
Debug.Print EmptyString = ""
'Output:
'True

vbNullString का उपयोग कोड के संकलन के अंतर के कारण "" के समतुल्य मूल्य से बेहतर अभ्यास माना जाता है। स्ट्रिंग्स को एक पॉइंटर के माध्यम से मेमोरी के आवंटित क्षेत्र में पहुँचा जाता है, और VBA कंपाइलर vbNullString का प्रतिनिधित्व करने के लिए एक अशक्त पॉइंटर का उपयोग करने के लिए पर्याप्त स्मार्ट है। शाब्दिक "" को स्मृति आवंटित की जाती है जैसे कि यह एक स्ट्रिंग टाइप किया हुआ वेरिएंट था, जो निरंतर अधिक कुशल का उपयोग करता है:

Debug.Print StrPtr(vbNullString)    'Prints 0.
Debug.Print StrPtr("")              'Prints a memory address.


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow