एक्सेल VBA राइट फंक्शन एरर


0

मैं एक्सेल में अपनी रिपोर्ट के शीर्ष पर दिनांक सीमा को स्वचालित रूप से अद्यतन करने का प्रयास कर रहा हूं जो कि एक पाठ डेटाबेस से डाउनलोड किए गए डेटा से तिथि सीमा के आधार पर है। नीचे सूचीबद्ध मैक्रो में मुझे एक रन-टाइम त्रुटि '13' मिलती है: टाइप बेमेल PEndDt = Right(PaidDateRange, 8)

मुझे लगता है कि तारीख चर, PEndDt, एक स्ट्रिंग प्राप्त करना पसंद नहीं करता है। लेकिन मैंने अन्य मैक्रोज़ में तार चर को तारांकित कर दिया है! मैं अब यह कैसे तय करने के लिए नहीं है। कृपया मदद करें।

Sub test()

Dim PEndDt As Date
Dim PaidDateRange As String

PaidDateRange = "PAID DATE  1/01/13 -  9/31/13"
PEndDt = Right(PaidDateRange, 8)
Range("A1") = "Report thru " & Format(PEndDt, "Long Date")

End Sub

जवाबों:


2

समस्या स्ट्रिंग में है।

9/31/13 वैध तारीख नहीं है।

9/31/2013 भी एक वैध तारीख नहीं है।


+1 गुड कैच, मैंने स्ट्रिंग को पार्स करने के लिए अपनी तिथि अपडेट की और डेटसिरियल () का उपयोग किया
पोर्टलैंड रनर

धन्यवाद! कुछ बार मैं कोड में इतना फंस जाता हूं कि मुझे साधारण चीजें याद आती हैं जैसे कि सितंबर में 31 दिन नहीं होते हैं। मेरा मैक्रो अब काम करता है।
21

1

आपको महीने, दिन, वर्ष प्रारूप में स्ट्रिंग को पार्स करना होगा

Dim itemDate as String
itemDate = Right(PaidDateRange, 8)

PEndDt = DateSerial(Right(itemDate, 2), Left(itemDate, 2), Mid(itemDate, 4, 2))

यदि आपका बस इसे एक स्ट्रिंग में वापस डाल रहा है तो तारीख में क्यों परिवर्तित करें?

Range("A1") = "Report thru " & Right(PaidDateRange, 8)

मैंने एक तिथि प्रकार चर में बदलने के लिए चुना ताकि अग्रणी स्थान गायब हो जाए। क्योंकि मुझे यह डेटा किसी टेक्स्ट डेटाबेस से मिल रहा है, इसलिए तारीख के सामने जगह हो सकती है। इस स्थान को संसाधित करने का सबसे आसान तरीका दिनांक स्वरूप चर का उपयोग करना है। यह बिना किसी अतिरिक्त कोड के "9/01/13" को "9/1/2013" में बदल देता है। यह "12/01/13" को सही ढंग से पार्स करने की अनुमति भी देता है।
११:१३
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.