2011-12-15 11 views
5

मैं एक्सेल में एक वीबीए मैक्रो लिख रहा हूं जो स्प्रेडशीट से डेटा का विश्लेषण करता है और एक ईमेल भेजता है। इस मैक्रो में, मुझे "एमएम/डीडी" के रूप में स्वरूपित दिनांक संलग्न करना है, लेकिन आउटपुट "एमएम-डीडी" के प्रारूप में है। तो सवाल यह है कि, मेरा स्लैश एक डैश के साथ क्यों बदला जा रहा है?प्रारूप (कुछ दिनांक, "एमएम/डीडी") = "12-15" वीबीए

सादगी के लिए, मैं इस उदाहरण के लिए कोड को कम कर दिया है, और सत्यापित समस्या के रूप में अच्छी तरह से इस उदाहरण के साथ मौजूद है ...

Private Sub Test() 
    Dim Yesterday As Date: Yesterday = DateAdd("d", -1, Now) 
    MsgBox Format(Yesterday, "MM/dd") 
End Sub 

जब चलाने के लिए, संदेश बॉक्स "12-15" से पता चलता बजाय उम्मीद के अनुसार "12/15"।

+0

मैंने सटीक कोड का उपयोग किया और मुझे उम्मीद के अनुसार "12/15" मिलता है। यह असामान्य है ... – aevanko

उत्तर

11

मैं अपने आप को VBA का इस्तेमाल किया है, लेकिन मैं यह "वर्तमान संस्कृति की तारीख विभाजक" / इलाज है संदेह - और आप शायद एक संस्कृति जो तारीख विभाजक के रूप में उपयोग करता - में क्रियान्वित कर रहे हैं। आप के हवाले से की कोशिश कर सकते स्लेश भागने आप निश्चित रूप से हमेशा एक स्लेश चाहते हैं:

MsgBox Format(Yesterday, "MM\/dd") 

दोनों कारण और ठीक पर कोई अनुमान का एक सा है कि है, लेकिन यह एक कोशिश कम से कम के लायक है।

संपादित करें: इस संदर्भ में सही से बचने के तरीके के सुधार के लिए जीएसआरजी के लिए धन्यवाद।

+1

आपका अनुमान पूरी तरह से सही है, यह सिर्फ भाग रहा है, यह एक स्लैश के साथ किया गया है: '"एमएम \/डीडी" ' – GSerg

+0

आप संस्कृति सेटिंग्स के बारे में सही हो सकते हैं। मेरे पास मेरी दिनांकीय प्रारूप मेरी क्षेत्रीय सेटिंग्स में 'yyyy-MM-dd' पर सेट है। जैसा कि आपने सुझाव दिया है उद्धरण चिह्न जोड़ना परिणामस्वरूप '12' - '14'' था। –

+0

@GSerg, धन्यवाद, वांछित आउटपुट का उत्पादन किया! –

2

इसे विंडोज़ में अपनी संस्कृति सेटिंग्स के साथ करना है। नियंत्रण कक्ष पर जाएं - क्षेत्रीय और भाषा विकल्प - क्षेत्रीय विकल्प अनुकूलित करें - दिनांक सेपरेटर। यह "-" पर सेट है। यदि आप "/" पसंद करते हैं तो आप इसे बदल सकते हैं।

यदि आप अपनी डिफ़ॉल्ट क्षेत्रीय सेटिंग्स के बावजूद तिथि को प्रारूपित करना चाहते हैं, तो आप जो कर सकते हैं वह जॉन स्कीट ने कहा है (चरित्र से बचें)।

संबंधित मुद्दे