मेरे पास निम्न स्वरूप में एक एक्सेल शीट में डेटा:VBA स्ट्रिंग तारीख पर कन्वर्ट
ItemCode DeliveryDate 5456987 24.01.2009 5456988 5456989 12.24.2009 5456990 12/24/2009
मैं एक सरणी में DeliveryDate के मूल्यों को संग्रहीत किया है। मुझे तारीख की मूल बातें पर निर्णय लेने की आवश्यकता है और फिर परिणाम को एक नई शीट में प्रिंट करना होगा।
Dim current as Date, highest as Date, result() as Date
For Each itemDate in DeliveryDateArray
current = CDate(itemDate)
if current > highest then
highest = current
end if
' some more operations an put dates into result array
Next itemDate
'After activating final sheet...
Range("A1").Resize(UBound(result), 1).Value = Application.Transpose(result)
दुर्भाग्य से, CDate() फ़ंक्शन त्रुटि फेंकता है:: तो मैं सरणी में मानों को परिवर्तित करने के लिए है
- पार्स:
Run-time error '13':
Type mismatch
वहाँ VBA में एक समारोह जो कर सकते हैं के साथ स्ट्रिंग दिनांक प्रारूप और साथ काम करने के लिए एक दिनांक वस्तु वापस करें।
- स्ट्रिंग खाली या विकृत होने पर (लूप में तुलना के लिए) खाली खाली ऑब्जेक्ट लौटाएं।
संपादित करें:
त्रुटि पुन: पेश करने के लिए बस चलाने myDate = CDate("24.01.2009")
नहीं है इस साइट [के अनुसार http://www.example-code.com /vb/stringtodate.asp] आप इसे सही कर रहे थे .. यह त्रुटि को फेंक देता है? किस पंक्ति पर - पहली एक या दूसरी पंक्ति (खाली स्ट्रिंग)? क्या आपने स्ट्रिंग प्रारूप को बदलने की कोशिश की है? आप इस प्रारूप को बदलना चाहेंगे कि आप अपनी डेट स्ट्रिंग्स को कैसे पार्स कर रहे हैं। "24.01.2009" को पहचाना नहीं जा सकता है लेकिन "12/24/2009" हो सकता है - केवल 12/24/2009 को परिवर्तित करने का प्रयास करें और देखें कि यह काम करता है या नहीं। यदि यह काम करता है, तो 24.01.2009 प्रारूप अस्वीकार्य हो सकता है। –
यह देखने के लिए कि क्या यह काम करता है 12/24/2009 को परिवर्तित करने का प्रयास करें। यदि यह काम करता है, तो प्रारूप dd.MM.yyyy सीडीएटी के लिए अपरिहार्य हो सकता है। आपके लिए यह निर्दिष्ट करने का एक तरीका हो सकता है कि यह कैसे स्वरूपित किया गया है ताकि यह वही तरीके से इसे पार्स कर सके जो आप चाहते हैं। यदि dd.MM.yyyy प्रारूप समस्या का कारण बन रहा है, तो प्रारूप को पहले बदलें "।" एक "/" के साथ और इसे फिर से बदलने की कोशिश करें। या इसे प्रारूपित करें कि यह एमएम/डीडी/yyyy बन जाता है और फिर इसे परिवर्तित करें। मुझे लगता है कि मैं सिर्फ यह जानना चाहता हूं कि "12/24/2009" त्रुटि करेगा या नहीं। पहले जांचें और मुझे बताएं। –
@ एएनएनबी, ठीक है मेरा पहला सवाल है; क्या कोई वीबीए फ़ंक्शन है जो * किसी भी * दिनांक प्रारूप के साथ स्ट्रिंग को पार्स कर सकता है और काम करने के लिए डेट ऑब्जेक्ट वापस कर सकता है? –