के साथ क्लिपबोर्ड पर एक्सेल क्लिपबोर्ड पर एक्सेल फ़ाइल की सामग्री कॉपी करना चाहते हैं, उसी कॉन्फ़िगरेशन और उपयोगकर्ता कॉन्फ़िगरेशन के बावजूद प्रारूप का उपयोग करना।मैक्रो दशमलव विभाजक
यहाँ मेरी मैक्रो है:
Private Sub CommandButton1_Click()
'save number separators
Dim d, t, u
d = Application.DecimalSeparator
t = Application.ThousandsSeparator
u = Application.UseSystemSeparators
'set number separators
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True
End With
'create temporary copy
ActiveSheet.Copy
'set number format
ActiveSheet.Range("H2:I150").NumberFormat = "0.0000000000"
[...]
'copy sheet to clipboard
ActiveSheet.Range("A1:O150").Copy
'disable messages (clipboard)
Application.DisplayAlerts = False
'close temporary copy
ActiveWorkbook.Close SaveChanges:=False
'reenable messages
Application.DisplayAlerts = True
'reset original separators
With Application
.DecimalSeparator = d
.ThousandsSeparator = t
.UseSystemSeparators = u
End With
End Sub
मैं अंत में मूल विभाजक रीसेट नहीं है, सब कुछ ठीक काम करता है, लेकिन यह मेरे लिए स्वीकार्य नहीं है।
यदि मैं विभाजक को रीसेट करता हूं (जैसा कि इस कोड में देखा गया है), तो क्लिपबोर्ड की सामग्री में उपयोगकर्ता विशिष्ट विभाजक होंगे, न कि जिन्हें मैंने शुरुआत में परिभाषित किया था।
इसे ठीक करने के तरीके पर कोई विचार?
एक्सेल को स्थानीय रूप से स्वीकार्य प्रारूप के रूप में एक संख्या/सूत्र को पढ़ने का कोई तरीका नहीं है? मेरे सिर के शीर्ष को याद नहीं किया जा सकता है कि यह कैसे करें। मुख्य सवाल, हालांकि, क्लिपबोर्ड के बाद डेटा जा रहा है? यदि यह एक्सेल में चिपक जाता है ... क्या आप विभाजक को अनदेखा नहीं कर सकते हैं और विश्वास करते हैं कि उसी उपयोगकर्ता द्वारा एक्सेल की दो खुली खिड़कियां उसी स्थानीय प्रारूप सेटिंग्स का उपयोग करती हैं? शायद मैं गलत समझ रहा हूं कि आप ऐसा क्यों करना चाहते हैं। –
डेटा एक अलग एप्लिकेशन में जाएगा। आवेदन वास्तव में परवाह नहीं करता है कि कौन से विभाजक उपयोग किए जाते हैं, जब तक वे लगातार होते हैं। (हर उपयोगकर्ता वही भेजता है)। लोकेल पास करना बोझिल होगा, क्योंकि सीटीआरएल + सी को मैक्रो से अलग होना होगा, सामग्री के अनुसार, न केवल प्रारूप के अनुसार। –
वैसे आपका कोड मेरे लिए पूरी तरह से ठीक काम कर रहा है। परीक्षण के उद्देश्य के लिए, मैंने अपना कोड चलाने से पहले अपने एक्सेल में विभाजक बदल दिए हैं। – ManishChristian