2012-09-07 60 views
10

我有一個宏,我在文本框中指定日期(以mm/dd/yyyy爲單位),我想爲列設置此值以yyyy-mm-dd格式顯示。我有以下代碼:爲特定列設置日期格式的VBA代碼爲「yyyy-mm-dd」

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

...當我運行宏時,日期仍然是以mm/dd/yyyy格式。

我該如何改變它,使它以我想要的格式?我一直在嘗試通過谷歌研究的各種代碼,沒有什麼會按照我想要的方式設置格式。

任何幫助將不勝感激...

編輯:從下面OP的評論全碼:

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

@KristinaKotonika - 你使用的是什麼版本的Excel?我在Excel 2003和Excel 2007中測試了這個沒有問題。您是先調用'Sheet1.Range(「A2」,「A50000」)=格式(日期,「yyyy-mm-dd」)? – LittleBobbyTables

+0

我使用的是Excel 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" 
相關問題