वीबीए स्ट्रिंग टू डेट - एक्सेल VBA में स्ट्रिंग वैल्यू को दिनांक में बदलें

एक्सेल वीबीए स्ट्रिंग टू डेट

Vba में एक विधि है जिसके द्वारा हम किसी दिए गए स्ट्रिंग को तिथि में परिवर्तित कर सकते हैं, और इस विधि को vba में CDATE फ़ंक्शन के रूप में जाना जाता है, यह VBA में एक इनबिल्ट फ़ंक्शन है और इस फ़ंक्शन के लिए आवश्यक भागों को पहले स्ट्रिंग में परिवर्तित करना है एक नंबर और फिर हम दिए गए नंबर को डेट में बदलते हैं। परिणाम स्वरूप केवल सिस्टम दिनांक प्रारूप पर निर्भर करता है।

एक्सेल के साथ हम सभी की आम समस्याओं में से एक "दिनांक और समय" है और अक्सर इसे पाठ मानों के रूप में संग्रहीत किया जाता है और शुरू में किसी का ध्यान नहीं जाता है। लेकिन जब उन्हें उस समय का उपयोग करने की आवश्यकता होती है, तो हमें पता चलेगा कि उन मानों को पाठ के रूप में संग्रहीत किया गया है और यह नहीं जानते कि उनके साथ कैसे व्यवहार करें। "दिनांक और समय" एक तत्व में दो संयुक्त चीजें हैं, लेकिन एक बार उन मूल्यों को पाठ मानों के रूप में संग्रहीत किया जाता है, यह काम करने के लिए एक दर्द है।

स्ट्रिंग वैल्यू को डेट में कैसे बदलें?

उदाहरण 1

एक बार VBA वैरिएबल घोषित करने और स्ट्रिंग के रूप में असाइन किए जाने के बाद, उस वेरिएबल को सौंपी गई किसी भी चीज को केवल स्ट्रिंग माना जाएगा। उदाहरण के लिए, नीचे दिए गए कोड को देखें।

कोड:

उप String_To_Date () डिम के रूप में स्ट्रिंग k = "10-21" MsgBox k End Sub

उपरोक्त कोड में, चर "k" को "स्ट्रिंग" डेटा प्रकार के रूप में परिभाषित किया गया है, और इस चर के लिए, हमने "10-21" के रूप में मान असाइन किया है।

ठीक है, चलो कोड चलाते हैं और देखते हैं कि हमें VBA में संदेश बॉक्स में क्या मिलता है।

हमें केवल 10-21 के रूप में मान मिला, लेकिन आमतौर पर, ये मूल्य एक तारीख हैं, स्ट्रिंग मान नहीं। भले ही डेटा प्रकार असाइन किया गया हो "स्ट्रिंग", हम अभी भी डेटा प्रकार रूपांतरण फ़ंक्शन CDATE VBA का उपयोग करके दिनांक को परिवर्तित कर सकते हैं।

कोड:

उप String_To_Date () डिम के रूप में स्ट्रिंग k = "10-21" MsgBox CDate (k) समाप्ति उप

उपरोक्त में, संदेश बॉक्स में चर "k" का परिणाम दिखाने से पहले, हमने CDATE फ़ंक्शन को असाइन किया है। एक छोटा समायोजन किया जाता है, आइए देखें कि यह कितना बड़ा प्रभाव डालता है।

अब हम "तिथि" के रूप में परिणाम को "स्ट्रिंग" मान के रूप में नहीं देखेंगे।

उदाहरण # 2

अब, एक उदाहरण के लिए नीचे दिए गए कोड को देखें।

कोड:

Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub

इस समय से ऊपर कोड में परिणाम "43599" के रूप में दिखाएगा, जैसा कि हमने ऊपर सौंपा है।

लेकिन एक बार जब हम CDATE फ़ंक्शन का उपयोग करते हैं, तो यह दिनांक मान में बदल जाएगा।

कोड:

उप String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) समाप्ति उप

CDATE फ़ंक्शन को लागू करने के बाद परिणाम निम्नानुसार है।

चूंकि एक्सेल ने दिनांक को सीरियल नंबरों के रूप में संग्रहीत किया है, इसलिए जब दिनांक प्रारूप लागू किया जाता है, तो हमारा असाइन किया गया क्रम संख्या 43599 दिनांक 05/14/2019 के बराबर होता है।

हम तारीख को सही ढंग से पढ़ने के लिए प्रारूप को "DD-MMM-YYYY" के रूप में भी लागू कर सकते हैं।

कोड:

उप String_To_Date1 () डिम के रूप स्ट्रिंग डिम DateValue दिनांक के रूप में = 43599 DateValue = CDate (k) MsgBox प्रारूप (DateValue, "DD-MMM-YYYY) समाप्ति उप

उपरोक्त में, मैंने परिणाम को संग्रहीत करने के लिए एक अतिरिक्त चर घोषित किया है। इस चर के लिए, मैंने CDATE रूपांतरण फ़ंक्शन लागू किया है।

अगला, मैंने "DD-MMM-YYYY" प्रारूप के प्रारूप को लागू करने के लिए FORMAT फ़ंक्शन का उपयोग किया है, और परिणाम नीचे दिखाया गया है।

इसके साथ, हम डेपार्ट और महीने के हिस्से को स्पष्ट रूप से पढ़ सकते हैं। यह एक्सेल में आपके सिस्टम की तारीख के प्रारूप पर भी निर्भर करता है। चूँकि मेरे सिस्टम की तारीख प्रारूप "MM-DD-YYYY" थी, यह ऐसा दिख रहा था, लेकिन यह प्रारूप में बाधा नहीं होना चाहिए।

उदाहरण # 3

अब हम वास्तव में देखेंगे कि कैसे कार्यपत्रक कक्षों में पाठ मानों के रूप में दिनांक बनाए जाते हैं। नीचे एक कार्यपत्रक में पाठ के रूप में संग्रहीत तिथियों की छवि है।

A2 से A12 के कॉलम A में, हमारे पास दिनांक खोज मान हैं, लेकिन जब हम प्रारूप टैब को देखते हैं, तो यह "टेक्स्ट" प्रारूप दिखाता है। अब हमें इन मूल्यों को पाठ से तारीख में बदलने की आवश्यकता है।

नीचे दिए गए कोड को मैंने पाठ-स्वरूपित तिथि मानों को वास्तविक तिथियों में बदलने के लिए लिखा है।

कोड:

उप String_To_Date2 () डिम k अस लॉन्ग 'डेटा एक से अधिक सेल में है, इसलिए प्रत्येक सेल के माध्यम से लूप की जरूरत है' Open For Loop For k = 2 To 12 'डेटा 2 पंक्ति से शुरू होता है और 12 वीं पंक्ति में समाप्त होता है, इसलिए 2 से 12 कक्ष (k, 2)। वाल्यू = सीडीट (कोशिकाएं (के, 1)। वाल्यू) अगला / अंतिम उप

यदि आप कोड चलाते हैं, तो यह हमें नीचे परिणाम देगा।

याद रखने वाली चीज़ें

  • CDATE एक डेटा प्रकार रूपांतरण फ़ंक्शन है लेकिन इसका उपयोग VBA स्ट्रिंग संग्रहीत दिनांक को वास्तविक दिनांक मानों में परिवर्तित करने के लिए किया जा सकता है।
  • CDATE फ़ंक्शन फॉर्मेट का परिणाम केवल सिस्टम तिथि प्रारूप पर निर्भर करता है।
  • तिथियों को सीरियल नंबर के रूप में एक्सेल में संग्रहीत किया जाता है, इसलिए उन्हें दिनांक के रूप में दिखाने के लिए स्वरूपण की आवश्यकता होती है।

दिलचस्प लेख...