2012-09-07 20 views
10

मेरे पास एक मैक्रो है जिसे मैं टेक्स्टबॉक्स में दिनांक (मिमी/डीडी/yyyy में) निर्दिष्ट करता हूं और मैं कॉलम के लिए यह मान सेट करना चाहता हूं एक yyyy-mm-dd प्रारूप में। मैं निम्नलिखित कोड है:वीबीए कोड एक विशिष्ट कॉलम के लिए दिनांक प्रारूप निर्धारित करने के लिए "yyyy-mm-dd"

Sheets("Sheet1").Range("A2", "A50000").Value = TextBox3.Value 
Sheet1.Range("A2", "A50000") = Format(Date, "yyyy-mm-dd") 

... और जब मैं मैक्रो चलाने के लिए, तारीख dd/mm/yyyy प्रारूप में अब भी है।

मैं इसे कैसे बदल सकता हूं ताकि यह प्रारूप में हो ?? मैं Google के माध्यम से शोध किए गए कई प्रकार के कोड की कोशिश कर रहा हूं और प्रारूप को जिस तरह से मैं चाहता हूं उसे सेट नहीं करेगा।

किसी भी मदद की सराहना की होगी ...

संपादित करें: नीचे ओपी की टिप्पणी से पूर्ण कोड:

Workbooks.Add 
Range("A1") = "Acctdate" 
Range("B1") = "Ledger" 
Range("C1") = "CY" 
Range("D1") = "BusinessUnit" 
Range("E1") = "OperatingUnit" 
Range("F1") = "LOB" 
Range("G1") = "Account" 
Range("H1") = "TreatyCode" 
Range("I1") = "Amount" 
Range("J1") = "TransactionCurrency" 
Range("K1") = "USDEquivalentAmount" 
Range("L1") = "KeyCol" 
Sheets("Sheet1").Range("A2", "A50000").Value = TextBox3.Value 
Sheet1.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd" 

उत्तर

21

उपयोग रेंज के NumberFormat संपत्ति रेंज का स्वरूप इस तरह मजबूर करने के लिए:

Sheet1.Range("A2", "A50000").NumberFormat = "yyyy-mm-dd" 
+2

मुझे लगता है कि कोशिश की और मैं अभी भी पुराने स्वरूप मिलती रहती है ... – Kristina

+0

@ क्रिस्टीनाकोटोनिका - आप किस संस्करण का उपयोग कर रहे हैं? मैंने बिना किसी समस्या के एक्सेल 2003 और एक्सेल 2007 दोनों में इसका परीक्षण किया। क्या आपने 'शीट 1' रेंज ("ए 2", "ए 50000") = प्रारूप (दिनांक, "yyyy-mm-dd") पहले कहा था? – LittleBobbyTables

+0

मैं एक्सेल 2010 का उपयोग कर रहा हूं। सबसे पहले, मैंने ऊपर वर्णित कोड को कॉल नहीं किया था और जब मैंने इसे जोड़ा, तो उसने अभी भी कुछ भी नहीं बदला। इससे पहले, मैं फ़ाइल खोल रहा हूं और फिर डेटा साफ़ कर रहा हूं, लेकिन मुझे नहीं लगता कि यह प्रारूप को किसी भी तरह से कैसे प्रभावित कर सकता है ... – Kristina

7

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

Sub test() 
Dim wb As Excel.Workbook 
Set wb = Workbooks.Add 
With wb.Sheets(1) 
    .Range("A1") = "Acctdate" 
    .Range("B1") = "Ledger" 
    .Range("C1") = "CY" 
    .Range("D1") = "BusinessUnit" 
    .Range("E1") = "OperatingUnit" 
    .Range("F1") = "LOB" 
    .Range("G1") = "Account" 
    .Range("H1") = "TreatyCode" 
    .Range("I1") = "Amount" 
    .Range("J1") = "TransactionCurrency" 
    .Range("K1") = "USDEquivalentAmount" 
    .Range("L1") = "KeyCol" 
    .Range("A2", "A50000").Value = Me.TextBox3.Value 
    .Range("A2", "A50000").NumberFormat = "yyyy-mm-dd" 
End With 
End Sub 
+0

भले ही यह आपके लिए काम करता है, मैं @littebobbytables को उत्तर के रूप में चिह्नित करूंगा, क्योंकि यह उस समय पोस्ट किए गए प्रश्न का सही जवाब था। –

+0

आपको बहुत बहुत धन्यवाद! यह पूरी तरह से काम किया। – Kristina

0

यह काम करता है, जब आप दोनों पंक्तियों का उपयोग:

Application.ActiveWorkbook.Worksheets("data").Range("C1", "C20000") = Format(Date, "yyyy-mm-dd") 
Application.ActiveWorkbook.Worksheets("data").Range("C1", "C20000").NumberFormat = "yyyy-mm-dd" 
संबंधित मुद्दे

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