2015-06-11 5 views
6

मैंने अपनी बनाई गई स्प्रेडशीट के साथ एक झगड़ा मारा है। यह मेरे पीसी पर ठीक काम करता है लेकिन मुझे पता है कि कार्यालय के कुछ अन्य पीसी में अमेरिकी लोकेशन हैं। ब्रिटिश स्थानीयकरण का उपयोग करके चीजों की जांच करने के लिए वीबीए को मजबूर करने का कोई तरीका है?ब्रिटिश स्थानीयकरण का उपयोग करने के लिए फोर्स वीबीए

मेरा मुद्दा यह है कि मैक्रो के हिस्से के रूप में मैं टेक्स्ट टू कॉलम का उपयोग यह सुनिश्चित करने के लिए करता हूं कि दर्ज की गई तिथियां तिथियों, संख्याओं या पाठों के रूप में दिखाई दे रही हैं। मेरे पीसी पर यह ठीक काम कर रहा है, लेकिन मुझे पता है कि मैंने इसे यूके स्थानीयकरण के रूप में स्थापित किया है।

अन्य लोगों में समस्याएं हैं, और यह पता नहीं है कि यह यूके स्थानीयकरण है या नहीं। अन्य लोगों के स्थानीयकरण की जांच करने या जोर देकर कहा कि उनके कंप्यूटर पर यूके स्थानीयकरण हैं, यह आदर्श होगा यदि मैं इस मैक्रो में किए गए सब कुछ को बल देने के लिए वीबीए में कोड की एक अतिरिक्त रेखा चिपक सकता हूं यूके स्थानीयकरण।

मुद्दा यह है कि कार्यक्रम यूके प्रारूप से अमेरिकी प्रारूप में तारीखों को बदल रहा है। ऐसा प्रतीत होता है जब मैक्रो में टेक्स्ट-टू-कॉलम चरण होता है।

क्या यूके स्थानीयकरण होने पर स्वचालित रूप से जांचने के लिए वीबीए प्राप्त करने का कोई तरीका है, अगर इसे यूके स्थानीयकरण में बदलना नहीं है और फिर अंत में इसे वापस बदलना है? मैं यूके स्थानीयकरण के लिए हर पीसी को मजबूर नहीं करना चाहता क्योंकि यह अन्य समस्याओं या परेशान उपयोगकर्ताओं का कारण बन सकता है - कुछ निश्चित रूप से वांछनीय नहीं है!

चीयर्स!

+1

'TextToColumns' में' FieldInfo' तर्क है जो आपको दिनांक आदेश (डीएमवाई आदि) निर्दिष्ट करने की अनुमति देता है। यह बिल्कुल 100% विश्वसनीय नहीं है, खासकर यदि आपके पास डेटा में समय के हिस्से हैं। यदि आप। मैं टीटीसी का उपयोग करने के बजाय डेटा को व्यक्तिगत रूप से पार्स करूंगा। – Rory

+0

चीयर्स रोरी। उस स्थिति में डेटा को रखने के लिए उपयोगकर्ताफॉर्म में रखना बेहतर होगा? तिथि फ़ील्ड महत्वपूर्ण है क्योंकि यह न केवल मैक्रो के परिणामों की गणना करता है, बल्कि यह परिणामस्वरूप रिपोर्ट का नाम भी देता है - दोनों को स्पष्ट रूप से सही होने की आवश्यकता है! – Miller86

+0

मुझे यकीन नहीं है कि उपयोगकर्ताफॉर्म क्या अंतर करेगा? शायद आप मैक्रो कोड पोस्ट कर सकते हैं ताकि हम देख सकें कि आप वास्तव में क्या कर रहे हैं। – Rory

उत्तर

0

ठीक है, इसलिए मैं इस निष्कर्ष पर आया हूं कि यह केवल स्थानीयकरण समस्या नहीं है। मैंने कार्यालय में एक और पीसी पर जांच की है जो यूके स्थानीयकरण पर सेट है और यह वहां पुन: उत्पन्न हो रहा है। इस मुद्दे को मैं का सामना करना पड़ा के लिए

दो संभावित समाधान हैं:

सबसे पहले, के रूप में एक्सेल भंडार एक अलग पहचानकर्ता के रूप में तिथियाँ, दिनांक इनपुट करने के लिए एक userform का उपयोग करें - योजना उपयोगकर्ताओं को एक क्लिक करने के लिए है "तिथि सीमा का चयन करें" बॉक्स, जो उपयोगकर्ता का चयन करेगा "दिनांक चुनें"। इसमें छह ड्रॉप डाउन बॉक्स होंगे - तीन चयन दिन, महीने और वर्ष के दो सेट। दिन संख्यात्मक, महीने का पाठ, वर्ष संख्यात्मक होगा, क्योंकि इसका मतलब यह होगा कि उपयोगकर्ता और एक्सेल दोनों को कोई भ्रम नहीं होगा, जिसके लिए यह है।

दूसरा समाधान उदाहरण के लिए डीडीएमएमएमवाईवाई या 01jan2015 के रूप में तारीखों को स्टोर करने के लिए एक्सेल प्राप्त करना है। यह एक वैकल्पिक समाधान है जो मेरे सहयोगी ने सुझाव दिया है, लेकिन जैसा कि मैं खुद को किसी भी समय उपयोगकर्ताफॉर्म को पढ़ाने की योजना बना रहा हूं, अब भी हो सकता है!

आशा इस किसी को भी, जो एक ही मुद्दा है :)

संपादित

समाधान ट्रेवर आयर यहाँ सुझाव का उपयोग कर समाप्त मदद करता है: UserForms के लिए Formatting MM/DD/YYYY dates in textbox in VBA। यह सुरुचिपूर्ण और उपयोगी है।

0

Guyz,

एक बहुत ही भयानक देशी समारोह है:

DatePart("d", "01/08/2015") will return you the day 
    DatePart("m", "02/08/2015") will return you the month 

इस समारोह appearently खाता स्थानीय सेटिंग में ले जाता है।यह समारोह अपने सभी समस्याओं का समाधान है जब मैं किसी अन्य स्थान में मेरी कोड भेजने के लिए किया था

एक बहुत ही गरीब समाधान का उपयोग करने होगा:

day=Split("somedate","someseparator") 

आशा इस मदद करता है

1

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

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