वीबीए फ़ंक्शंस का उपयोग करने के उदाहरण। स्ट्रिंग्स के साथ काम करने के लिए Oracle Vba Excel फ़ंक्शंस के अंतर्निहित फ़ंक्शंस

  • ए.एस.सी. () - यह फ़ंक्शन आपको पारित वर्ण के लिए संख्यात्मक कोड वापस करने की अनुमति देता है। उदाहरण के लिए, ASC('D') 68 लौटाएगा। यह फ़ंक्शन अगले या पिछले अक्षर को निर्धारित करने के लिए उपयोगी है। इसका उपयोग आमतौर पर फ़ंक्शन के साथ संयोजन में किया जाता है Chr(), जो उलटा ऑपरेशन करता है - प्रेषित संख्यात्मक कोड के अनुसार एक चरित्र लौटाता है। इस फ़ंक्शन के वेरिएंट हैं AscB() और AscW():
    • AscB () - चरित्र के लिए संख्यात्मक कोड का केवल पहला बाइट लौटाता है।
    • AscW () - यूनिकोड एन्कोडिंग में वर्ण के लिए कोड लौटाता है
  • Chr () - किसी वर्ण को उसके संख्यात्मक कोड द्वारा लौटाता है। Asc() फ़ंक्शन के साथ संयोजन में उपयोग किया जा सकता है, लेकिन अधिकतर इसका उपयोग तब किया जाता है जब आपको किसी सेवा वर्ण को मुद्रित करने की आवश्यकता होती है (उदाहरण के लिए उद्धरण - "), क्योंकि आप केवल VBA कोड में उद्धरण दर्ज नहीं कर सकते (आपको दोगुना लगाना होगा). यह वह फ़ंक्शन है जिसका मैं आमतौर पर उपयोग करता हूं।

    स्ट्रिंग तलवार के रूप में मंद तलवार = Chr(34) और "उद्धरण में शब्द" और Chr(34)

    इस फ़ंक्शन के लिए विकल्प हैं - ChrB() और ChrW(). फ़ंक्शन के लिए समान विकल्पों के समान कार्य करें एएससी().

  • निर्देप्राप्तगुम () और InStrRev () - सबसे लोकप्रिय सुविधाओं में से एक। आपको स्ट्रिंग वेरिएबल के मुख्य भाग में किसी वर्ण या वर्णों के अनुक्रम का पता लगाने और उनकी स्थिति लौटाने की अनुमति देता है। यदि अनुक्रम नहीं मिलता है, तो 0 लौटाया जाता है।

    स्ट्रिंग के रूप में मंद sStr sStr = "w" यदि InStr(1, "हैलो, वर्ल्ड!", sStr, vbTextCompare) > 0 तो MsgBox "खोज शब्द मौजूद है!" अन्यथा संदेश बॉक्स "खोजा गया शब्द गायब है!" अगर अंत

    फ़ंक्शंस के बीच अंतर यह है कि InStr() पंक्ति की शुरुआत से निर्दिष्ट शब्द की खोज करता है, और InStrRev() पंक्ति के अंत से खोजता है

  • बाएं () , सही () , मध्य () - मौजूदा स्ट्रिंग वेरिएबल से क्रमशः बाएं, दाएं या मध्य में आपके द्वारा निर्दिष्ट वर्णों की संख्या लेने की क्षमता।
    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox मिड(sStr, 1, 5)

    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox मिड(sStr, 1, 5)

  • लेन () - एक पंक्ति में वर्णों की संख्या प्राप्त करने की क्षमता। अक्सर लूप, रिप्लेस ऑपरेशंस आदि के साथ उपयोग किया जाता है।
  • एलकेस () और यूकेस () - स्ट्रिंग को क्रमशः लोअर और अपर केस में बदलें। अक्सर तुलना के लिए मूल्य तैयार करने के लिए उपयोग किया जाता है जब तुलना करते समय मामला महत्वपूर्ण नहीं होता है (उपनाम, कंपनियों के नाम, शहर, आदि).
  • एलसेट () और आरसेट () - एक वेरिएबल की लंबाई बदले बिना उसे दूसरे वेरिएबल के प्रतीकों से भरने की क्षमता (क्रमशः बाएँ और दाएँ). अतिरिक्त वर्ण काट दिए जाते हैं और लुप्त वर्णों के स्थान पर रिक्त स्थान रख दिए जाते हैं।
  • एलट्रिम () , आरट्रिम () , काट-छांट करना () - बाएँ, दाएँ या बाएँ और दाएँ दोनों पर क्रमशः रिक्त स्थान हटाने की क्षमता।
  • प्रतिस्थापित करें () - एक स्ट्रिंग में वर्णों के एक क्रम को दूसरे से बदलने की क्षमता।
    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox बदलें (sStr, "हैलो", "बे")

    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox बदलें (sStr, "हैलो", "बे")

  • अंतरिक्ष () - आपके द्वारा निर्दिष्ट रिक्त स्थान की संख्या से एक स्ट्रिंग प्राप्त करें;
    इसी तरह का एक और कार्य है छठे वेतन आयोग () , जिसका उपयोग कंसोल आउटपुट को प्रारूपित करने के लिए किया जाता है। यह कमांड लाइन की चौड़ाई के आधार पर रिक्त स्थान को गुणा करता है।
  • स्ट्रकॉम्प () - दो तारों की तुलना करने की क्षमता।
  • StrConv () - एक स्ट्रिंग को परिवर्तित करने की क्षमता (यूनिकोड और पीछे, अपरकेस और लोअरकेस में, शब्दों के पहले अक्षर को बड़े अक्षरों में लिखें, आदि):
    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox StrConv("हैलो, वर्ल्ड!" , vbUpperCase)

    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox StrConv ("हैलो, वर्ल्ड!", vbUpperCase)

    स्थिरांक का उपयोग दूसरे पैरामीटर पैरामीटर के रूप में किया जा सकता है:

    • vbअपरकेस:सभी टेक्स्ट वर्णों को अपर केस में परिवर्तित करता है
    • वीबीलोअरकेस:सभी टेक्स्ट वर्णों को लोअरकेस में परिवर्तित करता है
    • vbप्रॉपरकेस:प्रत्येक शब्द के पहले अक्षर को अपर केस में परिवर्तित करता है
    • *vbवाइड:स्ट्रिंग वर्णों को सिंगल-बाइट से डबल-बाइट में परिवर्तित करता है
    • *vbसंकीर्ण:स्ट्रिंग वर्णों को डबल-बाइट से सिंगल-बाइट में परिवर्तित करता है
    • **vbकटकाना:हीरागाना वर्णों को कटकाना वर्णों में परिवर्तित करता है
    • **vbहीरागाना:कटकाना वर्णों को हीरागाना वर्णों में परिवर्तित करता है
    • ***vbयूनिकोड:सिस्टम के डिफ़ॉल्ट कोड पेज का उपयोग करके एक स्ट्रिंग को यूनिकोड में परिवर्तित करता है
    • ***vbफ्रॉमयूनिकोड:यूनिकोड स्ट्रिंग को सिस्टम के डिफ़ॉल्ट कोड पेज में परिवर्तित करता है
    • * सुदूर पूर्व के स्थानीयकरण के लिए लागू
      ** केवल जापान के लिए लागू
      *** मैकिंटोश ऑपरेटिंग सिस्टम पर समर्थित नहीं है

  • स्ट्ररिवर्स () - किसी स्ट्रिंग के अक्षरों को उल्टे क्रम में रखकर उसे "उल्टा" करें। यह फ़ंक्शन केवल Excel 2000 और उच्चतर पर काम करता है। फ़ंक्शन का उपयोग करने का एक उदाहरण, साथ ही किसी शब्द को बदलने के अन्य तरीकों को इस आलेख में पाया जा सकता है: किसी शब्द को कैसे पलटें?
  • टैब () एक अन्य फ़ंक्शन है जिसका उपयोग कंसोल आउटपुट को प्रारूपित करने के लिए किया जाता है। आपके द्वारा निर्दिष्ट संख्या में टैब वर्णों को पुन: प्रस्तुत करता है। यदि कोई मात्रा निर्दिष्ट नहीं है, तो बस एक टैब वर्ण सम्मिलित करें। आप स्ट्रिंग मान में टैब वर्ण सम्मिलित करने के लिए स्थिरांक का भी उपयोग कर सकते हैं vbटैब.
  • डोरी () - आपको निर्दिष्ट संख्या में वर्णों की एक स्ट्रिंग प्राप्त करने की अनुमति देता है (जो फिर से आपके द्वारा निर्दिष्ट हैं). आमतौर पर फ़ंक्शन के साथ संयोजन में आउटपुट को प्रारूपित करने के लिए उपयोग किया जाता है लेन().

(http://www.cyberforum.ru/vba/thread638743.html)

विकल्प 1

strW= (='KOROTEEV DMITRY VLADIMIROVICH'') strB=Replace(Replace(strW, Chr(61), ""), Chr(34), "")

विकल्प

आप बाइट सरणी का भी उपयोग कर सकते हैं:

उप n() मंद द्रव्यमान() बाइट के रूप में, n जितना लंबा, Zam स्ट्रिंग के रूप में, TXT स्ट्रिंग के रूप में TXT = "=" दिमित्री व्लादिमीरोविच कोरोटीव" द्रव्यमान = StrConv(TXT, vbFromUnicode) n = 0 के लिए UBound(मास) यदि मास(एन)<>34 और द्रव्यमान(n)<>61 फिर ज़म = ज़म + Chr$(द्रव्यमान(n)) अगला संदेश बॉक्स ज़म अंत उप

विकल्प

या मध्य से फ़िल्टर करना:

सब एनएन() मंद एन लंबे समय तक, टीएक्सटी स्ट्रिंग के रूप में, एल स्ट्रिंग के रूप में, ज़म स्ट्रिंग के रूप में टीएक्सटी = "=" दिमित्री व्लादिमीरोविच कोरोटीव" एन = 1 के लिए लेन(टीएक्सटी) एल = मिड$(टीएक्सटी, एन, 1) यदि एल<>"""" और मैं<>"= फिर ज़म = ज़म + एल अगला संदेश बॉक्स ज़म अंत उप

लाइन 6 को हस्की से बदला जा सकता है:
विज़ुअल बेसिक कोड
1
यदि L को "[!""=]" पसंद है तो Zam = Zam + L

विकल्प

स्थिति खोज और रिकर्सन के माध्यम से भी:

उप परीक्षण() डिम एन जितना लंबा, txt स्ट्रिंग के रूप में txt = "=""दिमित्री व्लादिमिरोविच कोरोटीव" txt = Change(txt, "=") txt = Change(txt, """") MsgBox txt End Sub Function Change( txt स्ट्रिंग के रूप में, स्ट्रिंग के रूप में क्या, वैकल्पिक स्थिति = 1) यदि स्थिति जितनी लंबी और मंद<>0 फिर n = InStr(Pos, txt, What) Change = मिड$(txt, Pos, IIf(n - Pos)< 0, Len(txt), n - Pos)) + Change(txt, What, IIf(n = 0, 0, n + 1)) End If End Function

आप रेगुलर एक्सप्रेशन का भी उपयोग कर सकते हैं, लेकिन मैं उन्हें नहीं जानता।

विकल्प

दाएँ से बाएँ खोज और प्रत्यावर्तन के माध्यम से:

विज़ुअल बेसिक कोड
1 2 3 4 5 6 7 8 फ़ंक्शन परिवर्तन (स्ट्रिंग के रूप में txt, स्ट्रिंग के रूप में क्या, वैकल्पिक पॉज़ जितना लंबा) मंद n जितना लंबा यदि पॉज़ = 0 तो पॉज़ = लेन(txt) यदि पॉज़<>-1 तब n = InStrRev(txt, क्या, स्थिति) परिवर्तन = परिवर्तन(txt, क्या, IIf(n = 1, -1, n - 1)) + मध्य$(txt, n + 1, स्थिति - n) समाप्त यदि अंतिम कार्य

विकल्प

और वहाँ भी है विभाजित करनाऔर जोड़ना

Strb = जुड़ें (स्प्लिट (जुड़ें (स्प्लिट (strW, " = "), ""), "" ""), "")

विषय से परे:लेकिन यह परपीड़कों के लिए है

बड़ा अक्षर और छोटा अक्षर

ActiveDocument.Range के साथ "अपरकेस.टेक्स्ट = Ucase(.Text) "लोअरकेस.Text = Lcase(.Text) अंत के साथ

या StrConv() - एक स्ट्रिंग को कनवर्ट करें (यूनिकोड और पीछे, अपर और लोअर केस में, शब्दों के पहले अक्षर को बड़े अक्षरों में लिखें, आदि) - नीचे देखें

स्ट्रिंग ऑपरेशन

स्ट्रिंग प्रकार के डेटा के लिए, केवल एक ऑपरेशन है - कॉन्सटेनेशन (संघ)। उदाहरण के लिए, तीन स्ट्रिंग मानों "पीटर" और » » और "इवानोविच" के संयोजन संचालन का परिणाम स्ट्रिंग "पीटर इवानोविच" होगा। कॉन्सटेनेशन ऑपरेशन के लिए किसी अन्य ऑपरेटर का उपयोग करना भी संभव है, उदाहरण के लिए: "दस" + "हजार"। इन अभिव्यक्तियों के बीच अंतर यह है कि पहले मामले में, ऑपरेंड किसी भी प्रकार के मान हो सकते हैं (वे बस स्ट्रिंग में परिवर्तित हो जाएंगे), और दूसरे में, दोनों ऑपरेंड स्ट्रिंग प्रकार के होने चाहिए। स्ट्रिंग्स के साथ काम करने के लिए बड़ी संख्या में फ़ंक्शन हैं (तालिका। स्ट्रिंग्स के साथ काम करने के लिए फ़ंक्शन)।

तालिका "स्ट्रिंग्स के साथ काम करने के लिए कार्य"

समारोह विवरण उदाहरण
लेन(str) स्ट्रिंग की लंबाई निर्धारित करता है a=len('अक्षर') से यह a=9 का अनुसरण करता है
बाएं (<строка>, <длина>) तर्क से उद्धरण<строка>बाईं ओर वर्णों की निर्दिष्ट संख्या बाएँ("1234स्ट्रिंग", 4) = "1234″
सही(<строка>, <длина>) तर्क से उद्धरण<строка>दाईं ओर वर्णों की निर्दिष्ट संख्या दाएँ(" 1234स्ट्रिंग", 6) = "स्ट्रिंग"
मध्य(<строка>, <старт> [, <длина>]) तर्क से उद्धरण<строка>स्थिति से प्रारंभ करते हुए वर्णों की निर्दिष्ट संख्या के साथ सबस्ट्रिंग<старт> मध्य('12345678″, 4.3)='456'
मध्य(<строка>, <старт>) स्थिति से एक सबस्ट्रिंग निकाला जाता है<старт>पंक्ति के अंत तक मध्य('12345678″, 4)='45678'
एलट्रिम(<строка>) किसी पंक्ति के आरंभ में रिक्त स्थान हटाता है एलट्रिम("प्रिंट") = "प्रिंट"
आरट्रिम (<строка>) किसी स्ट्रिंग के अंत में रिक्त स्थान हटाता है आरट्रिम("प्रिंट") = "प्रिंट"
काट-छांट करना (<строка>) किसी स्ट्रिंग के आरंभ और अंत में रिक्त स्थान हटाता है ट्रिम('प्रिंट')='प्रिंट'
InStr([<старт>, ] < строка1>, <строка2> [, <сравнение>]) एक स्ट्रिंग में एक सबस्ट्रिंग की खोज करता है। किसी स्ट्रिंग की पहली घटना की स्थिति लौटाता है<строка2>कतार करना<строка1>, <старт>- वह स्थिति जहां से खोज शुरू होती है। यदि यह तर्क छोड़ दिया जाता है, तो खोज स्ट्रिंग की शुरुआत से शुरू होती है Instr('C:Temp test.mdb', 'Test')=9 यदि खोज स्ट्रिंग निर्दिष्ट स्ट्रिंग में नहीं है, तो फ़ंक्शन 0 लौटाता है
InStrRev([<старт>, ] <строка1>, <строка2> [, <сравнение>]) एक स्ट्रिंग में एक सबस्ट्रिंग की खोज करता है, लेकिन स्ट्रिंग के अंत में खोज शुरू करता है और सबस्ट्रिंग की अंतिम घटना की स्थिति लौटाता है। वैकल्पिक तर्क<сравнение>दो स्ट्रिंग्स के बीच तुलना के प्रकार को परिभाषित करता है
प्रतिस्थापित करें (<строка>, <строкаПоиск>, <строкаЗамена>) आपको स्ट्रिंग में एक सबस्ट्रिंग को दूसरे से बदलने की अनुमति देता है। यह फ़ंक्शन तर्क की सभी घटनाओं की खोज करता है<строкаПоиск>बहस में<строка>और उन्हें प्रतिस्थापित कर देता है<строкаЗамена>

स्ट्रिंग मानों की तुलना करने के लिए, आप नियमित संख्यात्मक तुलना ऑपरेटरों का उपयोग कर सकते हैं क्योंकि वर्णों की तुलना करते समय, उनके बाइनरी कोड की तुलना की जाती है। लाइक ऑपरेटर का उपयोग स्ट्रिंग मानों की तुलना करने के लिए भी किया जाता है, जो आपको एक सटीक मिलान का पता लगाने की अनुमति देता है, उदाहरण के लिए, अभिव्यक्ति "इनपुट" लाइक "इनपुट*" का मूल्यांकन सही होगा क्योंकि तुलना की जा रही स्ट्रिंग "इनपुट" शब्द से शुरू होती है। एक स्ट्रिंग में तारांकन चिह्न (*) वर्ण मनमाने ढंग से वर्णों की संख्या को प्रतिस्थापित करता है। अन्य वर्ण जो तुलना की गई स्ट्रिंग में लाइक ऑपरेटर द्वारा संसाधित किए जाते हैं:

  • ? - कोई भी वर्ण (एक);
  • # – एक अंक (0–9);
  • [<список>] - एक वर्ण जो सूची के किसी एक वर्ण से मेल खाता है;
  • [!<список>] - एक वर्ण जो सूची के किसी भी वर्ण से मेल नहीं खाता।
  • ए.एस.सी.() - यह फ़ंक्शन आपको पारित वर्ण के लिए संख्यात्मक कोड वापस करने की अनुमति देता है। उदाहरण के लिए, ASC('D') 68 लौटाएगा। यह फ़ंक्शन अगले या पिछले अक्षर को निर्धारित करने के लिए उपयोगी है। इसका उपयोग आमतौर पर फ़ंक्शन के साथ संयोजन में किया जाता है Chr(), जो उलटा ऑपरेशन करता है - प्रेषित संख्यात्मक कोड के अनुसार एक चरित्र लौटाता है। इस फ़ंक्शन के वेरिएंट हैं AscB() और AscW():
    • AscB() - चरित्र के लिए संख्यात्मक कोड का केवल पहला बाइट लौटाता है।
    • AscW() - यूनिकोड एन्कोडिंग में वर्ण के लिए कोड लौटाता है
  • Chr() - किसी वर्ण को उसके संख्यात्मक कोड द्वारा लौटाता है। Asc() फ़ंक्शन के साथ संयोजन में उपयोग किया जा सकता है, लेकिन अधिकतर इसका उपयोग तब किया जाता है जब आपको किसी सेवा वर्ण को मुद्रित करने की आवश्यकता होती है (उदाहरण के लिए उद्धरण - "), क्योंकि आप केवल VBA कोड में उद्धरण दर्ज नहीं कर सकते (आपको दोगुना लगाना होगा). यह वह फ़ंक्शन है जिसका मैं आमतौर पर उपयोग करता हूं।

    स्ट्रिंग तलवार के रूप में मंद तलवार = Chr(34) और "उद्धरण में शब्द" और Chr(34)

    इस फ़ंक्शन के लिए विकल्प हैं - ChrB() और ChrW(). फ़ंक्शन के लिए समान विकल्पों के समान कार्य करें एएससी().

  • निर्देप्राप्तगुम() और InStrRev() - सबसे लोकप्रिय सुविधाओं में से एक। आपको स्ट्रिंग वेरिएबल के मुख्य भाग में किसी वर्ण या वर्णों के अनुक्रम का पता लगाने और उनकी स्थिति लौटाने की अनुमति देता है। यदि अनुक्रम नहीं मिलता है, तो 0 लौटाया जाता है।

    स्ट्रिंग के रूप में मंद sStr sStr = "w" यदि InStr(1, "हैलो, वर्ल्ड!", sStr, vbTextCompare) > 0 तो MsgBox "खोज शब्द मौजूद है!" अन्यथा संदेश बॉक्स "खोजा गया शब्द गायब है!" अगर अंत

    फ़ंक्शंस के बीच अंतर यह है कि InStr() पंक्ति की शुरुआत से निर्दिष्ट शब्द की खोज करता है, और InStrRev() पंक्ति के अंत से खोजता है

  • बाएं() , सही() , मध्य() - मौजूदा स्ट्रिंग वेरिएबल से क्रमशः बाएं, दाएं या मध्य में आपके द्वारा निर्दिष्ट वर्णों की संख्या लेने की क्षमता।

    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox मिड(sStr, 1, 5)

  • लेन() - एक पंक्ति में वर्णों की संख्या प्राप्त करने की क्षमता। अक्सर लूप, रिप्लेस ऑपरेशंस आदि के साथ उपयोग किया जाता है।
  • एलकेस() और यूकेस() - स्ट्रिंग को क्रमशः लोअर और अपर केस में बदलें। अक्सर तुलना के लिए मूल्य तैयार करने के लिए उपयोग किया जाता है जब तुलना करते समय मामला महत्वपूर्ण नहीं होता है (उपनाम, कंपनियों के नाम, शहर, आदि).
  • एलसेट() और आरसेट() - एक वेरिएबल की लंबाई बदले बिना उसे दूसरे वेरिएबल के प्रतीकों से भरने की क्षमता (क्रमशः बाएँ और दाएँ). अतिरिक्त वर्ण काट दिए जाते हैं और लुप्त वर्णों के स्थान पर रिक्त स्थान रख दिए जाते हैं।
  • एलट्रिम() , आरट्रिम() , काट-छांट करना() - बाएँ, दाएँ या बाएँ और दाएँ दोनों पर क्रमशः रिक्त स्थान हटाने की क्षमता।
  • प्रतिस्थापित करें() - एक स्ट्रिंग में वर्णों के एक क्रम को दूसरे से बदलने की क्षमता।

    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox बदलें (sStr, "हैलो", "बे")

  • अंतरिक्ष() - आपके द्वारा निर्दिष्ट रिक्त स्थान की संख्या से एक स्ट्रिंग प्राप्त करें;
    इसी तरह का एक और कार्य है छठे वेतन आयोग() , जिसका उपयोग कंसोल आउटपुट को प्रारूपित करने के लिए किया जाता है। यह कमांड लाइन की चौड़ाई के आधार पर रिक्त स्थान को गुणा करता है।
  • स्ट्रकॉम्प() - दो तारों की तुलना करने की क्षमता।
  • StrConv() - एक स्ट्रिंग को परिवर्तित करने की क्षमता (यूनिकोड और पीछे, अपरकेस और लोअरकेस में, शब्दों के पहले अक्षर को बड़े अक्षरों में लिखें, आदि):

    स्ट्रिंग sStr के रूप में मंद sStr = "हैलो, विश्व!" MsgBox StrConv ("हैलो, वर्ल्ड!", vbUpperCase)

    स्थिरांक का उपयोग दूसरे पैरामीटर पैरामीटर के रूप में किया जा सकता है:

      • vbअपरकेस:सभी टेक्स्ट वर्णों को अपर केस में परिवर्तित करता है
      • वीबीलोअरकेस:सभी टेक्स्ट वर्णों को लोअरकेस में परिवर्तित करता है
      • vbप्रॉपरकेस:प्रत्येक शब्द के पहले अक्षर को अपर केस में परिवर्तित करता है
      • *vbवाइड:स्ट्रिंग वर्णों को सिंगल-बाइट से डबल-बाइट में परिवर्तित करता है
      • *vbसंकीर्ण:स्ट्रिंग वर्णों को डबल-बाइट से सिंगल-बाइट में परिवर्तित करता है
      • **vbकटकाना:हीरागाना वर्णों को कटकाना वर्णों में परिवर्तित करता है
      • **vbहीरागाना:कटकाना वर्णों को हीरागाना वर्णों में परिवर्तित करता है
      • ***vbयूनिकोड:सिस्टम के डिफ़ॉल्ट कोड पेज का उपयोग करके एक स्ट्रिंग को यूनिकोड में परिवर्तित करता है
      • ***vbफ्रॉमयूनिकोड:यूनिकोड स्ट्रिंग को सिस्टम के डिफ़ॉल्ट कोड पेज में परिवर्तित करता है

    * सुदूर पूर्व स्थानीयकरण के लिए लागू
    ** केवल जापान के लिए लागू
    *** मैकिंटोश ऑपरेटिंग सिस्टम पर समर्थित नहीं है

  • स्ट्ररिवर्स() - किसी स्ट्रिंग के अक्षरों को उल्टे क्रम में रखकर उसे "उल्टा" करें। यह फ़ंक्शन केवल Excel 2000 और उच्चतर पर काम करता है। फ़ंक्शन का उपयोग करने का एक उदाहरण, साथ ही किसी शब्द को बदलने के अन्य तरीकों को इस आलेख में पाया जा सकता है: किसी शब्द को कैसे पलटें?
  • टैब() एक अन्य फ़ंक्शन है जिसका उपयोग कंसोल आउटपुट को प्रारूपित करने के लिए किया जाता है। आपके द्वारा निर्दिष्ट संख्या में टैब वर्णों को पुन: प्रस्तुत करता है। यदि कोई मात्रा निर्दिष्ट नहीं है, तो बस एक टैब वर्ण सम्मिलित करें। आप स्ट्रिंग मान में टैब वर्ण सम्मिलित करने के लिए स्थिरांक का भी उपयोग कर सकते हैं vbटैब.
  • डोरी() - आपको निर्दिष्ट संख्या में वर्णों की एक स्ट्रिंग प्राप्त करने की अनुमति देता है (जो फिर से आपके द्वारा निर्दिष्ट हैं). आमतौर पर फ़ंक्शन के साथ संयोजन में आउटपुट को प्रारूपित करने के लिए उपयोग किया जाता है लेन().

निम्नलिखित तीन फ़ंक्शन आपको स्ट्रिंग्स की एक श्रृंखला के साथ काम करने की अनुमति देते हैं

विभाजित करना (<строка> [, <разделитель>]) - एक स्ट्रिंग को सबस्ट्रिंग की एक सरणी में परिवर्तित करता है। डिफ़ॉल्ट रूप से, स्पेस का उपयोग सीमांकक के रूप में किया जाता है। किसी वाक्य को शब्दों में तोड़ने के लिए इस फ़ंक्शन का उपयोग करना सुविधाजनक है। हालाँकि, आप इस फ़ंक्शन में कोई अन्य सीमांकक निर्दिष्ट कर सकते हैं। उदाहरण के लिए, स्प्लिट(3, "यह एक परीक्षण वाक्य है") तीन स्ट्रिंग मानों की एक सरणी देता है: "यह", "परीक्षण", "वाक्य"। जोड़ना (<массивСтрок> [, <разделитель>]) - निर्दिष्ट सीमांकक के साथ स्ट्रिंग्स की एक सरणी को एक स्ट्रिंग में परिवर्तित करता है। फ़िल्टर(<массивСтрок>, <строкаПоиск>[, <включение>] [, <сравнение>]) - स्ट्रिंग मानों की एक सरणी को स्कैन करता है और दिए गए स्ट्रिंग से मेल खाने वाले सभी सबस्ट्रिंग की खोज करता है। इस फ़ंक्शन में चार तर्क हैं:<строкаПоиск>- खोज स्ट्रिंग;<включение>- एक पैरामीटर (बूलियन मान) जो निर्दिष्ट करता है कि लौटाई गई पंक्तियों में खोजी गई सबस्ट्रिंग शामिल होगी या, इसके विपरीत, केवल वे सरणी पंक्तियाँ जिनमें सबस्ट्रिंग के रूप में खोजी गई स्ट्रिंग शामिल नहीं है, वापस की जाएंगी;<сравнение>- स्ट्रिंग तुलना विधि को परिभाषित करने वाला पैरामीटर। तीन और फ़ंक्शन स्ट्रिंग रूपांतरण प्रदान करते हैं: LCase(<строка>) - एक स्ट्रिंग में सभी वर्णों को लोअरकेस में परिवर्तित करता है, उदाहरण के लिए LCase ("MAIL") फ़ंक्शन स्ट्रिंग "मेल" लौटाता है; यूकेस(<строка>) - स्ट्रिंग के सभी वर्णों को अपरकेस में परिवर्तित करता है; StrConv(<строка>, <преобразование>) - दूसरे पैरामीटर के आधार पर कई प्रकार के स्ट्रिंग परिवर्तन करता है। यह पैरामीटर अंतर्निहित स्थिरांक द्वारा वर्णित है, उदाहरण के लिए फ़ंक्शन StrConv ("रूस", VbProperCase) मान "रूस" लौटाता है।

और अंतिम दो फ़ंक्शन वर्णों की श्रृंखला उत्पन्न करते हैं

अंतरिक्ष(<число>) - रिक्त स्थान की निर्दिष्ट संख्या से युक्त एक स्ट्रिंग बनाता है; डोरी(<число>, <символ>) - पहले तर्क में निर्दिष्ट वर्णों की संख्या से युक्त एक स्ट्रिंग बनाता है। प्रतीक स्वयं दूसरे तर्क में निर्दिष्ट है।

उदाहरण

एक प्रोग्राम बनाएं जो स्ट्रिंग वेरिएबल्स के साथ काम करता है। ऐसा करने के लिए, एक फॉर्म बनाएं जिसके लेबल में निम्नलिखित संदेश हों: 1 लेबल: पहले टेक्स्ट फ़ील्ड में दर्ज की गई स्ट्रिंग की लंबाई रिपोर्ट की गई है (1 पंक्ति); 2 लेबल: तीसरे टेक्स्ट फ़ील्ड (तीसरी पंक्ति) के सभी वर्णों को बड़े अक्षरों में परिवर्तित करता है; तीसरा लेबल: पहले और दूसरे टेक्स्ट फ़ील्ड (पंक्तियाँ 1 और 2) की सामग्री को एक साथ प्रदर्शित करता है।

निष्पादन तकनीक

  • Word खोलें, दस्तावेज़ सहेजें, और VBA संपादक पर जाएँ।
  • नीचे दिए गए चित्र के समान एक आकृति बनाएं।
  • ओके बटन के लिए एक इवेंट हैंडलर लिखें।
  • प्रोग्राम संकलित करें.
  • प्रपत्र चलाएँ.

निजी उप CommandButton1_Click() Dim a As String Dim b As String Dim c As String Dim k As As String Dim d As String Dim n As Integer a=TextBox1.Text n=Len(a) Label7.Caption=“the length of thefirst पंक्ति है" और n और "अक्षर" c=TextBox3.Text k=Ucase(с) Label8.Caption=k b=TextBox2.Text d=a + " " + b Label9.Caption=d End Sub

काम

यह आवश्यक है कि एक्सेल में सेल ए1 में कॉलम ए2 में अल्पविराम द्वारा अलग किए गए शब्दों की खोज की जाए, और परिणाम, और पाए गए शब्द, खोजे गए पाठ में उनकी पुनरावृत्ति की संख्या (यदि संभव हो) के साथ, लिखे जाएं। दूसरा, तीसरा, सेल। (यह और भी बेहतर होगा यदि उन्हें पहले सेल में किसी तरह से हाइलाइट किया गया (या रेखांकित किया गया)... ताकि वे तुरंत दिखाई दे सकें। इस तरह आप शब्दों को एक सरणी में डालते हैं:

विज़ुअल बेसिक कोड
1 2 3 4 5 6 मंद m() स्ट्रिंग के रूप में यदि InStr(1, Cells(1, 2).Value, ","") > 0 तो m = स्प्लिट(Replace(Cells(1, 2).Value, " ", ""), " , "") अन्यथा रीडिम एम(0): एम(0) = ट्रिम(सेल्स(1, 2).वैल्यू) अंत यदि

और फिर एक लूप में आप सभी शब्दों को खोजते हैं (फिर से एक लूप में, नेस्टेड) 23 मिनट बाद जोड़ा गया

विज़ुअल बेसिक कोड
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 विकल्प पाठ की तुलना करें विकल्प स्पष्ट उप QWERT() Dim R, N, K Dim m() स्ट्रिंग के रूप में यदि InStr(1, Cells(1, 2).Value, ",") > 0 फिर m = स्प्लिट(Replace(Cells() 1, 2).मान, " ", ""), ",") अन्यथा रीडिम एम(0): एम(0) = ट्रिम(सेल्स(1, 2).वैल्यू) अंत यदि आर के लिए = 0 से यूबाउंड( m) N = 1 यदि InStr(1, Cells(1, 1).Value, m(R)) > 0 तो K = InStr(N, Cells(1, 1).Value, m(R)) कलर K करें , लेन(एम(आर)) एन = के + लेन(एम(आर)) के = इनस्ट्र(एन, सेल्स(1, 1).वैल्यू, एम(आर)) लूप जबकि के > 0 एंड इफ नेक्स्ट आर एंड सब उपरंग(ST, LN) कक्षों के साथ(1,1).अक्षर(प्रारंभ:=ST, लंबाई:=LN).फ़ॉन्ट .रंग = RGB(0,0,255) .बोल्ड = सही अंत अंत उप के साथ

15 मिनट बाद जोड़ा गया और इस तरह यह शब्द की शुरुआत में खोजेगा और पूरे शब्द का चयन करेगा

विज़ुअल बेसिक कोड
1 2 3 4 5 6 7 8 9 10 11 उपरंग(ST, LN) LN = LN - 1 Do LN = LN + 1 लूप जबकि VBA.Mid(सेल्स(1, 1).मान, ST + LN, 1)<>" " सेल (1, 1) के साथ। अक्षर (प्रारंभ: = एसटी, लंबाई: = एलएन)। फ़ॉन्ट। रंग = आरजीबी (0, 0, 255)। बोल्ड = एंड सब के साथ ट्रू एंड

आप शब्द की शुरुआत से नहीं, बल्कि शब्द के हिस्से से खोज कर सकते हैं। - एक और डू-लूप चक्र जोड़ें। केवल प्रारंभ (ST) को बाईं ओर एक स्थान पर स्थानांतरित करें (http://www.cyberforum.ru/vba/thread567588.html)

कैसे करें: एक पैटर्न के विरुद्ध एक स्ट्रिंग का मिलान करें (विज़ुअल बेसिक)

अनुपालन जांचटेम्पलेट स्ट्रिंग डेटा प्रकार (विजुअल बेसिक) - ऑपरेटर की तरह (विजुअल बेसिक)। लाइक ऑपरेटर का बायां ऑपरेंड एक स्ट्रिंग अभिव्यक्ति है, और दायां ऑपरेंड एक टेम्पलेट स्ट्रिंग है लाइक एक बूलियन मान लौटाता है

चरित्र की जांच

? - कोई एक प्रतीक

  • myString में W अक्षर और उसके बाद कोई 2 अक्षर शामिल हैं

    मंद sMatch As Boolean = myString जैसे "W??"

सूची और श्रेणी से कोई भी वर्ण

कोई भी पात्र और फिर A, C या E में से कोई एक अक्षर

    मंद sMatch As Boolean = myString जैसा "?" अक्षर संवेदनशील

  • myString = संख्या वर्ण और फिर श्रेणी से एक वर्ण: i, j, k, l, m या n:

    बूलियन के रूप में मंद sMatch = myString "संख्या" की तरह अक्षर संवेदनशील

जैसे शून्य-लंबाई स्ट्रिंग सरणी स्ट्रिंग ("") दोनों के साथ काम करता है। आपको यह जांचने की अनुमति देता है कि एक स्ट्रिंग खाली है

सूची में से एक वर्ण या कोई वर्ण नहीं

  1. लाइक ऑपरेटर का दो बार उपयोग किया जाता है, और परिणामों को Or ऑपरेटर (विजुअल बेसिक) या OrElse ऑपरेटर (विजुअल बेसिक) का उपयोग करके संयोजित किया जाता है।
  2. पहले स्टेटमेंट टेम्प्लेट में, वर्गाकार कोष्ठकों () में वर्णों की एक सूची डालें।
  3. दूसरे स्टेटमेंट टेम्प्लेट में, चेक स्थान पर कुछ भी न रखें। उदाहरण: सात अंकों वाले फ़ोन नंबर फ़ोन नंबर की जाँच करना, जिसमें बिल्कुल तीन अंक होने चाहिए, उसके बाद एक स्थान, एक हाइफ़न, एक बिंदु या कोई वर्ण नहीं, और फिर चार अंक। (पहले तीन अंकों को अंतिम चार से अलग नहीं किया जा सकता - "कोई वर्ण नहीं") शून्य, एक त्रुटि उत्पन्न होती है। यदि कोई तर्क दिया गया है तुलना_प्रकार , तर्क शुरुआत की स्थिति ये जरूरी है। लाइन 1 आवश्यक। स्ट्रिंग अभिव्यक्तिजिसकी तलाश की जा रही है. लाइन 2 आवश्यक। वह स्ट्रिंग अभिव्यक्ति जिसे आप ढूंढ रहे हैं. तुलना_प्रकार वैकल्पिक। प्रकार को परिभाषित करता है स्ट्रिंग तुलना. यदि तर्क का मान तुलना_प्रकार शून्य है, एक त्रुटि उत्पन्न होती है. यदि तर्क तुलना_प्रकार छोड़े गए, तुलना प्रकार पैरामीटर द्वारा निर्धारित किया जाता है अर्थ बुधएडब्ल्यूई. भाषा सेटिंग्स में निर्दिष्ट तुलना नियमों का उपयोग करने के लिए एक वैध LCID (LocaleID) पैरामीटर निर्दिष्ट करें।

    विकल्प

    तर्क तुलना_प्रकार निम्नलिखित पैरामीटर का उपयोग करता है:

    मान लौटाएँ

    टिप्पणियाँ

    समारोह InStrBएक स्ट्रिंग में निहित बाइट डेटा के साथ प्रयोग किया जाता है। समारोह InStrBएक स्ट्रिंग की दूसरे के भीतर पहली घटना की बाइट स्थिति लौटाता है, वर्ण स्थिति नहीं।

    उदाहरण

    किसी अभिव्यक्ति में InStr फ़ंक्शन का उपयोग करनाहर बार जब आप अभिव्यक्ति का उपयोग करते हैं तो आप फ़ंक्शन का उपयोग कर सकते हैं निर्देप्राप्तगुम. उदाहरण के लिए, यदि आप पहले बिंदु की स्थिति निर्धारित करना चाहते हैं ( . ) उस फ़ील्ड में जिसमें एक आईपी पता ("आईपीएड्रेस" नाम दिया गया है) शामिल है, आप फ़ंक्शन का उपयोग कर सकते हैं निर्देप्राप्तगुमइसे खोजने के लिए:

    InStr(1,,"")

    समारोह निर्देप्राप्तगुम"आईपीएड्रेस" फ़ील्ड में प्रत्येक मान को देखता है और पहले बिंदु की स्थिति लौटाता है। इसलिए, यदि IP पते के पहले ऑक्टेट का मान है 10. , फ़ंक्शन मान 3 लौटाता है।

    आप अन्य फ़ंक्शन का उपयोग कर सकते हैं जो फ़ंक्शन के परिणाम का उपयोग करते हैं निर्देप्राप्तगुम, उदाहरण के लिए, पहले बिंदु से पहले आने वाले आईपी एड्रेस ऑक्टेट का मान निकालने के लिए:

    बाएँ(,(InStr(1,,।"")-1))

    इस उदाहरण में फ़ंक्शन InStr(1,,"")पहले बिंदु की स्थिति लौटाता है। 1 घटाने के परिणामस्वरूप, पहले बिंदु से पहले वर्णों की संख्या निर्धारित की जाती है, इस मामले में - 2. फिर फ़ंक्शन बाएंइन वर्णों को "आईपीएड्रेस" फ़ील्ड के बाईं ओर से निकालता है, मान 10 लौटाता है।

    फ़ंक्शन का उपयोग करना निर्देप्राप्तगुमविजुअल बेसिक फॉर एप्लिकेशन (वीबीए) कोड में

    टिप्पणी।निम्नलिखित उदाहरण विज़ुअल बेसिक फॉर एप्लिकेशन (वीबीए) मॉड्यूल के उपयोग को दर्शाते हैं। वीबीए के साथ काम करने के बारे में अधिक जानकारी के लिए, चयन करें डेवलपर का संदर्भबटन के आगे ड्रॉप-डाउन सूची में खोज, और फिर खोज फ़ील्ड में एक या अधिक कीवर्ड दर्ज करें।

    इस उदाहरण में, फ़ंक्शन निर्देप्राप्तगुमएक स्ट्रिंग की दूसरी स्ट्रिंग के भीतर पहली घटना की स्थिति प्राप्त करने के लिए उपयोग किया जाता है।

    मंद सर्चस्ट्रिंग, सर्चचार, मायपोस सर्चस्ट्रिंग = "XXpXXpXXPXXP" " खोजने के लिए स्ट्रिंग। सर्चचार = "पी" " "पी" खोजें। "स्थिति 4 से शुरू होने वाली एक पाठ्य तुलना। रिटर्न 6. MyPos = निर्देश( 4, खोज स्ट्रिंग , सर्चचार , 1) " स्थिति 1 से शुरू होने वाली एक बाइनरी तुलना। रिटर्न 9. MyPos = निर्देश( 1, खोज स्ट्रिंग , सर्चचार , 0) " तुलना डिफ़ॉल्ट रूप से द्विआधारी है " (अंतिम तर्क छोड़ दिया गया है)। माईपोस = निर्देश(खोज स्ट्रिंग , सर्चचार ) " रिटर्न 9. MyPos = निर्देश( 1, खोज स्ट्रिंग , "डब्ल्यू" ) "0 लौटाता है.

अक्सर किसी प्रोग्राम की पंक्तियों में पंक्ति के अंत या शुरुआत में अनावश्यक रिक्त स्थान वाले अक्षर होते हैं जिन्हें हटाने की आवश्यकता होती है एक पंक्ति में बाहरी अग्रणी या अनुगामी स्थान प्रोग्राम में समस्याएँ पैदा कर सकते हैं।

VBA में एक स्ट्रिंग से अग्रणी और अनुगामी रिक्त स्थान को हटाने के लिए डिज़ाइन किए गए तीन फ़ंक्शन हैं: एलट्रिम, आरट्रिम, ट्रिम. ध्यान रखें कि ये फ़ंक्शन वास्तव में मूल स्ट्रिंग को संशोधित नहीं करते हैं, बल्कि अतिरिक्त रिक्त स्थान हटाकर स्ट्रिंग की एक प्रति लौटाते हैं।

स्ट्रिंग की लंबाई निर्धारित करना

किसी उपयोगकर्ता के लिए संदेशों को फ़ॉर्मेट करते समय या किसी प्रक्रिया द्वारा एक्सेल वर्कशीट या वर्ड दस्तावेज़ में दर्ज किए गए स्ट्रिंग डेटा को फ़ॉर्मेट करते समय आपको आमतौर पर एक स्ट्रिंग की लंबाई जानने की आवश्यकता होती है। VBA इन उद्देश्यों के लिए फ़ंक्शन का उपयोग करता है लेन. नीचे दी गई सूची में, कोष्ठक और शब्द के बीच दो स्थान हैं।



आपको निश्चित लंबाई के तारों से सावधान रहना चाहिए। क्योंकि एक निश्चित-लंबाई वाली स्ट्रिंग की लंबाई हमेशा समान होती है, लेन फ़ंक्शन हमेशा स्ट्रिंग की घोषित लंबाई लौटाता है, चाहे स्ट्रिंग की वास्तविक लंबाई कुछ भी हो। उदाहरण के लिए, यदि निश्चित-लंबाई स्ट्रिंग वेरिएबल StrokeName, जो 15 अक्षर लंबा है, में वास्तव में "सूर्य" शब्द शामिल है, तो फ़ंक्शन लेन(स्ट्रोकनाम)परिणाम 15 लौटाएगा। इस मामले में, स्ट्रिंग की वास्तविक लंबाई (हमारे मामले में - 6) जानने के लिए, आपको कार्यों के निम्नलिखित संयोजन का उपयोग करने की आवश्यकता है: लेन(ट्रिम(स्ट्रोकनाम)).

स्ट्रिंग्स की तुलना करना और खोजना

VBA के दो फ़ंक्शन हैं जो आपको स्ट्रिंग्स की तुलना करने में मदद करते हैं: StrComp, InStr.

फ़ंक्शन StrComp

वाक्य - विन्यास


StrComp(स्ट्रिंग1, स्ट्रिंग2[, तुलना करें])


स्ट्रिंग1, स्ट्रिंग2 - कोई भी दो स्ट्रिंग अभिव्यक्तियाँ जिनकी तुलना करने की आवश्यकता है।

जब StrComp निष्पादित होता है, तो निम्न में से एक मान लौटाया जाता है:

  • -1 यदि स्ट्रिंग1, स्ट्रिंग2 से कम है;
  • 0 यदि स्ट्रिंग1 और स्ट्रिंग2 बराबर हैं;
  • 1 यदि स्ट्रिंग1, स्ट्रिंग2 से बड़ी है।


उपरोक्त सूची टेक्स्ट मोड में दो स्ट्रिंग्स की तुलना करती है: "डिफ़ॉल्ट स्ट्रिंग" और "डिफ़ॉल्ट स्ट्रिंग"। तुलना परिणाम = 1, अर्थात "डिफ़ॉल्ट स्ट्रिंग" "डिफ़ॉल्ट स्ट्रिंग" से बड़ी है।

StrComp फ़ंक्शन कैसे काम करता है, इसे बेहतर ढंग से समझने के लिए विभिन्न स्ट्रिंग्स के साथ प्रयोग करें।

फ़ंक्शन InStr

InStr फ़ंक्शन आपको यह निर्धारित करने की अनुमति देता है कि एक स्ट्रिंग में दूसरी स्ट्रिंग है या नहीं।

वाक्य - विन्यास


StrComp(स्ट्रिंग1, स्ट्रिंग2[, तुलना करें])


स्ट्रिंग1, स्ट्रिंग2 - कोई भी मान्य स्ट्रिंग अभिव्यक्ति। फ़ंक्शन जाँचता है कि क्या String1, String2 में समाहित है।

तुलना एक वैकल्पिक तर्क है जो निम्नलिखित पूर्वनिर्धारित स्थिरांकों में से कोई भी हो सकता है (यदि छोड़ा गया है, तो वर्तमान विकल्प तुलना सेटिंग का उपयोग किया जाता है):

  • vbBinaryCompare - दो तारों की द्विआधारी तुलना;
  • vbTextCompare - दो स्ट्रिंग्स की टेक्स्ट तुलना;
  • vbDatabaseCompare - केवल Microsoft Access में उपयोग किया जाता है।

प्रारंभ - एक वैकल्पिक तर्क, एक संख्यात्मक अभिव्यक्ति है और स्ट्रिंग 1 में वर्ण की स्थिति निर्दिष्ट करती है जहां से जांच शुरू होनी चाहिए।


InStr स्ट्रिंग1 में वर्ण की स्थिति को इंगित करने वाला एक नंबर लौटाता है जहां स्ट्रिंग2 पाया गया था। यदि InStr को String1 में String2 नहीं मिलता है, तो 0 लौटा दिया जाता है। यदि String1 (या String2) Null है, तो फ़ंक्शन भी Null लौटा देता है।



रेखा विभाजन

कभी-कभी किसी स्ट्रिंग को उसके घटक भागों में विभाजित करना आवश्यक हो जाता है। VBA में, तीन फ़ंक्शन इस समस्या का समाधान करते हैं: बाएँ, दाएँ, मध्य.

वाम कार्य

वाक्य - विन्यास


बाएँ (स्ट्रिंग, लंबाई)


फ़ंक्शन स्ट्रिंग की एक प्रति लौटाता है, जो पहले वर्ण से शुरू होती है और इसमें लंबाई द्वारा निर्दिष्ट वर्णों की संख्या शामिल होती है। यदि लंबाई स्ट्रिंग की वास्तविक लंबाई से अधिक संख्या है, तो संपूर्ण स्ट्रिंग अभिव्यक्ति वापस आ जाती है।

सही कार्य

वाक्य - विन्यास


दाएँ (स्ट्रिंग, लंबाई)


स्ट्रिंग कोई भी वैध स्ट्रिंग अभिव्यक्ति है।

लंबाई - कोई संख्यात्मक मान.


फ़ंक्शन स्ट्रिंग की एक प्रति लौटाता है, जो अंतिम वर्ण से शुरू होती है और इसमें दाएं से बाएं तक, लंबाई द्वारा निर्दिष्ट वर्णों की संख्या शामिल होती है। यदि लंबाई स्ट्रिंग की वास्तविक लंबाई से अधिक संख्या है, तो संपूर्ण स्ट्रिंग अभिव्यक्ति वापस आ जाती है। राइट फ़ंक्शन हमेशा स्ट्रिंग के अंत से शुरुआत तक वर्णों की प्रतिलिपि बनाता है।

मध्य समारोह

वाक्य - विन्यास


मध्य (स्ट्रिंग, प्रारंभ, [, लंबाई])


स्ट्रिंग कोई भी वैध स्ट्रिंग अभिव्यक्ति है।

लंबाई, प्रारंभ - कोई भी संख्यात्मक मान।


मिड फ़ंक्शन स्टार्ट तर्क द्वारा निर्दिष्ट स्ट्रिंग में वर्ण स्थिति से शुरू होने वाली स्ट्रिंग की एक प्रति लौटाता है। वैकल्पिक लंबाई तर्क स्ट्रिंग से मध्य तक कॉपी करने के लिए वर्णों की संख्या निर्दिष्ट करता है। यदि स्टार्ट में स्ट्रिंग की वास्तविक लंबाई से अधिक संख्या है, तो एक खाली स्ट्रिंग लौटा दी जाती है।



ऐसे अक्षर जिन्हें कीबोर्ड से दर्ज नहीं किया जा सकता

अक्सर ऐसा होता है कि आपको एक ऐसा वर्ण दर्ज करने की आवश्यकता होती है जिसके लिए कीबोर्ड पर कोई कुंजी नहीं है (उदाहरण के लिए, एक कॉपीराइट प्रतीक)। एक अन्य स्थिति तब होती है जब आपको एक स्ट्रिंग में VBA सेवा वर्ण शामिल करने की आवश्यकता होती है (सबसे आम मामला दोहरे उद्धरण चिह्नों को शामिल करना है)।

किसी स्ट्रिंग में ऐसे अक्षर शामिल करने के लिए जिन्हें कीबोर्ड से दर्ज नहीं किया जा सकता है, या जिनका VBA के लिए विशेष अर्थ है, फ़ंक्शन का उपयोग करें Chr.

वाक्य - विन्यास


Chr (चारकोड)


चारकोड - कोई भी संख्यात्मक अभिव्यक्ति जो कंप्यूटर द्वारा उपयोग किए जाने वाले वर्ण सेट के लिए एक वैध कोड है। 0 और 255 के बीच एक पूर्णांक होना चाहिए.

Chr फ़ंक्शन एकल वर्ण कोड को तर्क के रूप में लेता है और उस कोड के अनुरूप वर्ण वाली एक स्ट्रिंग लौटाता है। इस फ़ंक्शन का उपयोग उपरोक्त लिस्टिंग में स्क्रीन Chr (13) पर एक संदेश प्रदर्शित करते समय एक लाइन फीड करने के लिए किया जाता है।


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

  • vbCr एक कैरिज रिटर्न कैरेक्टर है। Chr(13) के समतुल्य
  • vbLf - एक पंक्ति द्वारा ऑफसेट वर्ण। Chr(10) के समतुल्य
  • vbCrLf - कैरिज रिटर्न + एक लाइन द्वारा ऑफसेट कैरेक्टर। Chr(13)+ Chr(10) के समतुल्य
  • vbTab - टैब वर्ण. Chr(9) समतुल्य

सूची देखने के लिए कोड-प्रतीकआपको अनुरोध पर वीबीए सहायता प्रणाली खोलनी होगी "चरित्र सेट"संबंधित तालिका प्रस्तुत की जाएगी.



डेटा मानों का स्वरूपण

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

VBA फ़ॉर्मेट फ़ंक्शन Excel में फ़ॉर्मेट फ़ंक्शन के समान है और समान डेटा फ़ॉर्मेटिंग प्लेसहोल्डर का उपयोग करता है।

वाक्य - विन्यास


प्रारूप (अभिव्यक्ति [, प्रारूप[, सप्ताह का पहला दिन [, प्रथम सप्ताह का वर्ष]]])


अभिव्यक्ति - कोई भी मान्य अभिव्यक्ति (आवश्यक तर्क)।

प्रारूप किसी नामित या उपयोगकर्ता-परिभाषित प्रारूप की एक वैध अभिव्यक्ति है।

सप्ताह का पहला दिन एक स्थिरांक है जो सप्ताह के पहले दिन को निर्दिष्ट करता है।

Firstweekofyear - एक स्थिरांक जो वर्ष के पहले सप्ताह को परिभाषित करता है।


फ़ॉर्मेट फ़ंक्शन का उपयोग करने के लिए, आपको इनमें से किसी एक का उपयोग करना होगा एक पूर्वनिर्धारित प्रारूप सेट करें, या एक विशिष्ट प्रारूप की छवि बनाएं, प्लेसहोल्डर वर्णों का उपयोग करना।


फ़ॉर्मेट फ़ंक्शन के साथ उपयोग के लिए नामित प्रारूप

नामित प्रारूप कार्रवाई
सामान्य तिथि इस कंप्यूटर के लिए दिनांक और समय प्रारूप सेटिंग्स का उपयोग करके दिनांक और समय की जानकारी को अनुक्रमिक दिनांक संख्या में प्रारूपित करें।
लंबी तारीख कंप्यूटर की लंबी दिनांक प्रारूप सेटिंग्स का उपयोग करके, केवल दिनांक भाग को अनुक्रमिक दिनांक में स्वरूपित करता है।
मध्यम तिथि आपके कंप्यूटर की मध्यम दिनांक प्रारूप सेटिंग्स का उपयोग करके, केवल दिनांक भाग को अनुक्रमिक दिनांक के रूप में प्रारूपित करें।
कम समय लघु दिनांक प्रारूप के लिए कंप्यूटर की सेटिंग्स का उपयोग करके, केवल दिनांक वाले भाग को अनुक्रमिक दिनांक में स्वरूपित करता है।
लंबे समय तक कंप्यूटर की दीर्घकालिक प्रारूप सेटिंग्स का उपयोग करके, केवल समय भाग को अनुक्रमिक तिथि में प्रारूपित करता है।
मध्यम समय कंप्यूटर की मध्यम समय प्रारूप सेटिंग्स का उपयोग करके, केवल समय भाग को अनुक्रमिक तिथि में प्रारूपित करता है।
कम समय लघु समय प्रारूप के लिए कंप्यूटर की सेटिंग्स का उपयोग करके, केवल समय भाग को अनुक्रमिक तिथि में प्रारूपित करता है।
सामान्य संख्या किसी संख्या को बिना किसी विशेष वर्ण के एक स्ट्रिंग में स्वरूपित करता है।
मुद्रा मुद्रा चिह्न, हज़ार विभाजक और केवल दो दशमलव स्थानों के साथ एक संख्या को प्रारूपित करता है।
तय किसी संख्या को इस प्रकार प्रारूपित करें कि दशमलव बिंदु से पहले हमेशा कम से कम एक अंक और उसके बाद कम से कम दो अंक हों।
मानक एक संख्या को हजारों विभाजक के साथ प्रारूपित करता है ताकि दशमलव विभाजक से पहले कम से कम एक अंक और उसके बाद कम से कम दो अंक हों।
प्रतिशत किसी संख्या को 100 से गुणा करके और प्रतिशत चिह्न जोड़कर प्रतिशत के रूप में स्वरूपित करता है।
वैज्ञानिक किसी संख्या को नियमित घातीय प्रारूप में स्वरूपित करता है।
हां नहीं यदि स्वरूपित संख्या गैर-शून्य है तो स्ट्रिंग "हां" लौटा दी जाती है, अन्यथा - "नहीं"।
सही गलत यदि स्वरूपित संख्या गैर-शून्य है तो स्ट्रिंग "ट्रू" लौटा दी जाती है, अन्यथा - "गलत"।
बंद यदि स्वरूपित संख्या गैर-शून्य है तो स्ट्रिंग "चालू" लौटा दी जाती है, अन्यथा - "बंद"।

कस्टम प्रारूप बनाने के लिए प्लेसहोल्डर

प्लेसहोल्डर वर्ण क्रिया (उदाहरण के तौर पर संख्या 1234.45 का उपयोग करके)
0 एक संख्यात्मक वर्ण जो यदि कोई उस स्थिति में है तो एक अंक प्रदर्शित करता है, या यदि वह नहीं है तो 0 प्रदर्शित करता है। आप पूर्णांक के लिए अग्रणी शून्य और दशमलव के लिए पिछला शून्य प्रदर्शित करने के लिए 0 प्रतीक का उपयोग कर सकते हैं: 00000.000 01234.450 प्रदर्शित करता है
# एक संख्यात्मक प्रतीक एक अंक प्रदर्शित करता है यदि कोई इस स्थिति में है, अन्यथा यह कुछ भी प्रदर्शित नहीं करता है। # भराव वर्ण 0 के बराबर है, सिवाय इसके कि आगे और पीछे के शून्य प्रदर्शित नहीं होते हैं: #####.### 1234.45 प्रदर्शित करता है
$ डॉलर चिह्न प्रदर्शित करता है: $###,###.00 $1,234.45 प्रदर्शित करता है
. दशमलव प्लेसहोल्डर वर्ण, 0 प्लेसहोल्डर वर्ण स्ट्रिंग में निर्दिष्ट स्थान पर दशमलव बिंदु प्रदर्शित करता है: #.##.## 1234.45 प्रदर्शित करता है
% प्रतिशत प्रतीक, मान को 100 से गुणा करता है और प्लेसहोल्डर 0:#.#0.00% द्वारा इंगित स्थिति पर प्रतिशत चिह्न जोड़ता है, संख्या 0.12345 को 12.35% के रूप में प्रदर्शित करता है (गोलीकरण होता है)
, हजारों विभाजक, 0 और # प्लेसहोल्डर स्ट्रिंग में हजारों विभाजक के रूप में अल्पविराम जोड़ता है: ###,###,###.00 1,234.45 प्रदर्शित करता है
ई-ई- केवल नकारात्मक मानों के लिए घातांक के साथ मान को घातीय प्रारूप में प्रदर्शित करता है: #.####E-00 1.23445E03 प्रदर्शित करता है
ई+ ई+ नकारात्मक और सकारात्मक दोनों मानों के लिए एक घातांक के साथ मान को घातीय प्रारूप में प्रदर्शित करता है: #.####E+00 1.23445E+03 प्रदर्शित करता है
/ दिनांक मानों को फ़ॉर्मेट करने के लिए दिन, माह और वर्ष को अलग करता है।
एम तिथियों में महीनों को प्रदर्शित करने का तरीका निर्दिष्ट करता है: एम 1 प्रदर्शित करता है, मिमी - 01, मिमी - जनवरी, मिमी मिमी - जनवरी
डी निर्दिष्ट करता है कि तारीखों में दिनों को कैसे प्रदर्शित किया जाए: d 1 प्रदर्शित करता है, dd - 01, ddd - रवि, dddd - रविवार
वर्ष के दिन को 1 से 366 तक की संख्या के रूप में प्रदर्शित करता है
Y y निर्दिष्ट करता है कि तिथियों में वर्ष कैसे प्रदर्शित करें: वर्ष - 66, वर्ष - 1966
क्यू वर्ष की तिमाही को 1 से 4 तक की संख्या के रूप में प्रदर्शित करता है
डब्ल्यू सप्ताह के दिन को एक संख्या के रूप में प्रदर्शित करता है (1 - रविवार)
वाह! वर्ष के सप्ताह को 1 से 54 तक की संख्या के रूप में प्रदर्शित करता है
: समय प्रारूप मानों में घंटे, मिनट और सेकंड को अलग करता है: hh:mm:ss - 01:01:01, h:m:s - 1:1:1
एच निर्दिष्ट करता है कि घंटे कैसे प्रदर्शित करें: hh - 01, h - 1
एम निर्दिष्ट करता है कि मिनट कैसे प्रदर्शित करें: मिमी - 01, मी - 1
एस सेकंड प्रदर्शित करने का तरीका निर्दिष्ट करता है: ss - 01, s - 1
दोपहर से पूर्व दोपहर के बाद AM या PM को जोड़कर 12-घंटे के समय प्रारूप में समय प्रदर्शित करता है
@ एक वर्ण प्लेसहोल्डर जो स्वरूपित स्ट्रिंग में कोई मेल खाता वर्ण न होने पर एक स्थान प्रदर्शित करता है।
सभी वर्णों को अपरकेस में प्रदर्शित करता है.
> सभी वर्णों को लोअरकेस में प्रदर्शित करता है।
Chr

Chr समारोह

Chr(चारकोड)
Chr$(चारकोड)
ChrB(चारकोड)
ChrW(चारकोड)

समारोह Chr(चौधरी aract आर) आपको इसके एएनएसआई या यूनिकोड संख्यात्मक कोड के मूल्य से एक चरित्र प्राप्त करने की अनुमति देता है

प्रतिलाभ की मात्रा

कार्य Chr, ChrB, ChrWनिर्दिष्ट एएनएसआई या यूनिकोड वर्ण कोड के अनुरूप वर्ण वाले प्रकार के स्ट्रिंग उपप्रकार का मान लौटाएं। कार्य Chr$, ChrB$, ChrW$तदनुसार स्ट्रिंग प्रकार का मान लौटाएँ

टिप्पणी

Chrऔर Chr$किसी वर्ण को उसकी ANSI एन्कोडिंग द्वारा लौटाएँ
ChrBऔर ChrB$वापस करना एकल-बाइटरेखा
ChrWएक यूनिकोड वर्ण लौटाता है, हालाँकि गैर-यूनिकोड प्रणालियों पर इसका व्यवहार समान होता है Chr
पैरामीटर में उपयोग करें चारकोड 255 से अधिक मान रनटाइम त्रुटियाँ उत्पन्न करते हैं 5: अमान्य प्रक्रिया कॉल या तर्क या 6: अतिप्रवाह

विकल्पचारकोड आवश्यक तर्क एक लंबा मान है जो वर्ण निर्दिष्ट करता है। आमतौर पर समारोह Chrटेक्स्ट स्ट्रिंग्स (कैरिज रिटर्न, लाइन फीड, टेबुलेटर, आदि) में गैर-मुद्रण योग्य वर्ण सम्मिलित करते समय उपयोग किया जाता है। कोड 0-31 मानक ASCII नियंत्रण वर्णों के अनुरूप हैं। उदाहरण के लिए, Chr(10) न्यूलाइन कैरेक्टर लौटाता है उदाहरणमंद रेटवल रेटवल = Chr(65) डीबग.प्रिंट रेटवल " रिटर्न ए वर्ग

प्रश्न अनुभाग में लोग, कृपया विस्तार से बताएं कि पास्कल में फ़ंक्शन ऑर्ड(x) और इसके व्युत्क्रम chr(x) का क्या अर्थ है? लेखक द्वारा दिया गया निक ब्राउनसबसे अच्छा उत्तर है वर्णों की एक विशेष तालिका है (विस्तारित ASCII कोड, जब प्रत्येक वर्ण का एक संख्यात्मक मान होता है, कुल मिलाकर तालिका में 255 मान होते हैं, अर्थात प्रत्येक वर्ण को एक संख्या दी जाती है,
chr(0..254) एक संख्या (एक बाइट) को उस वर्ण में परिवर्तित करता है जिससे यह संख्या संबंधित है, उदाहरण के लिए chr(71) परिणाम अक्षर "G" होगा, साथ ही कीबोर्ड पर कुंजी दबाने से अपना कोड उत्पन्न होता है, इस ऑपरेटर में रखे जाने पर यह बिल्कुल वही कोड है और यह परिणाम देगा कि कौन सी कुंजी दबाई गई है, उदाहरण के लिए यह मैं हूं। लेकिन ORD(x) ऑपरेटर इस प्रक्रिया को उल्टे क्रम में करता है।
हम मान वर्ण निर्धारित करते हैं और 0 से 254 (एक बाइट) तक की संख्या प्राप्त करते हैं
उदाहरण के लिए ORD("G") हमें परिणाम 71 देगा (दशमलव प्रारूप में)
बस यही लगता है!!!

उत्तर से कट्योनाचिक[नौसिखिया]
यह वास्तव में सरल है)
Ord ("X") - ASKII तालिका से वर्ण X का कोड लौटाएगा।
व्युत्क्रम फ़ंक्शन का परिणाम एक प्रतीक होगा जो उसी ASCII तालिका से दर्ज किए गए कोड (जिससे फ़ंक्शन लिया गया है) से मेल खाता है।


उत्तर से जूरी[गुरु]
ये पारस्परिक कार्य नहीं हैं!
ऑर्ड फ़ंक्शन किसी प्रगणित प्रकार का क्रमिक मान लौटाता है।
गिनती शून्य से शुरू होती है.
बाइट प्रकार के लिए, फ़ंक्शन वास्तविक मान लौटाएगा - क्रमिक संख्या मान के साथ मेल खाती है।
चार प्रकार के लिए, फ़ंक्शन वर्ण की क्रम संख्या लौटाएगा, जो (संख्या यादृच्छिक है) ASCII कोड से मेल खाती है।
सीएचआर फ़ंक्शन दिए गए ASCII कोड के साथ कैरेक्टर लौटाता है।
निष्कर्ष: बस, प्रतीकात्मक मूल्यों के संबंध में, वे वास्तव में एक दूसरे के विपरीत कार्य करते हैं...
इसलिए, हम कह सकते हैं कि ऑर्ड फ़ंक्शन chr फ़ंक्शन का व्युत्क्रम है, लेकिन इसके विपरीत नहीं - chr फ़ंक्शन ऑर्ड फ़ंक्शन का व्युत्क्रम नहीं है, क्योंकि ऑर्ड फ़ंक्शन का दायरा प्रतीकों के साथ काम करने तक सीमित नहीं है!