2012-09-17 66 views
0

我從一個電子表格抓取日期並將它們輸出到另一個電子表格中。抓住日期後,當我debug.print它是在正確的格式。當我輸出日期時,debug.print也顯示正確的格式。但是,電子表格中值剛剛發送到的格式並未顯示正確的格式。正確收集VBA日期,但輸出錯誤

我使用:

Sheets(SheetName).Cells(RowNum, ColNum).Value = Data 
Sheets(SheetName).Cells(RowNum, ColNum).NumberFormat = "dd/mm/yyyy" 

後,我已經貼了價值,但月和日還在切換走錯了路。

有什麼我做錯了嗎?如果我右鍵單擊該單元格,它認爲它的日期是dd/mm/yyyy,而不是4月9日它將顯示4月9日。

回答

0

最後,我不得不單元格的格式爲「TEXT」,以保持正確的格式

0

這可能會有些麻煩本地化:

嘗試使用NumberFormatLocal,如果DanielCooks提示沒有幫助;)

編輯: erlier它是由老總庫克statet,以檢查是否給定數據是正確的。

編輯:

隨着我的德語版我有相當一些麻煩,使用/作爲分隔符,這就是爲什麼我使用此代碼.NumberFormat ="dd-mm-yyyy;@" tryied - 工作正常;我可以根據自己的喜好切換幾個月和幾個月。

編輯:

隨着.NumberFormatLocal = "TT/MM/JJJJ"我必須使用的日,月和年德國的短褲,但現在我可以用/作爲分隔符。

你應該嘗試一些格式字符串豆蔻位;)

+0

丹尼爾的尖端沒有工作:(在Excel中我的區域設置爲英語(英國) – mezamorphic

+0

我的小費並沒有幫助,希望你確實:-) –

+0

沒有幫助:(數據是正確,因爲debug.print在VBA編輯器中顯示正確的值,它們只是沒有正確顯示在工作表中。 – mezamorphic

0

(1)您需要定義變量爲「Date」類型來讀取輸入,然後在將其分配給日期變量之前設置日期格式。

(2)您還需要格式化日期輸出以使其工作!

'** 閱讀日期輸入 ****

Dim date1 as Date 

Range("B2").NumberFormatLocal = "dd/mm/yyyy" 

date1 = Range("B2").Value 

' ** 輸出的時間 ****

Range("E2").Value = date1 

Range("E2").NumberFormatLocal = "dd/mm/yyyy" 
0

對不起復活一箇舊帖子,但是我有一個VBA輸出有效日期爲美國風格的問題,實際日期發生變化,例如5月1日發生了變化到1月5日。我遇到這個帖子,但我沒有找到我需要的答案,現在我已經完成了,我想我會分享它:

關鍵不是定義變量存儲日期作爲「日期「但作爲一個」雙「,例如

Dim ReportDate As Double 
ReportDate = Date 


Range("E6").Value = ReportDate 

這樣工作,因爲它輸出數字「日期值」,然後excel然後本地格式化,例如, 41644被格式化爲使用英國格式的「05/01/14」或使用美國格式的「01/05/14」。

希望這證明對其他人有用(可能是我,當我忘記我如何在六個月內解決它)。

0

使用

Sub OutputDate(ByVal rng As Range, ByVal d As Date) 
With rng 
    .Formula = Format(d, "DD/MMM/YYYY") 
    .NumberFormat = "DD/MM/YYYY" 
End With 
End Sub