2017-08-10 70 views
0

小問題在這裏。我有一個應用程序,其中日期時間數據顯示爲歐洲格式的字符串。我做了一個快速的VBA腳本,將其轉換爲標準的美洲格式,並打算將其更改爲DateTime值。相反,一旦我改變了格式,Excel會自動爲我完成。到現在爲止還挺好。唯一的問題是,它只顯示日期,即使當我點擊單元格時,它將日期和時間顯示爲一個值。例如,單元格顯示值6/8/2017,但公式欄中列出的值是6/8/2017 12:56:07 PM。更改在Excel中通過VBA顯示的內容

雖然這在技術上足夠滿足我的應用程序,但我希望將完整的值列在單元格中。我知道這可能可以通過更改Excel的屬性來完成,我有點依賴於用戶使Excel配置得恰到好處。我想知道的是,如果VBA中有方法告訴單元格或列顯示完整值。

此外,我不相信Excel的「自動」功能,以防萬一有人沒有像我一樣設置Excel。任何方式來覆蓋這些?

+0

錄製宏,而單元格的格式設置爲您所需的顯示 - 那麼你可以結合到您的碼。 –

+2

在VBA中,您可以使用單元格的'NumberFormat'屬性來設置如何顯示值(這聽起來像是您想要的「mm/dd/yyyy hh:mm:ss AM/PM」格式)。顯然,通過Excel的「格式單元格」選項執行相同的操作可能更容易。 – YowE3K

回答

0

您可以使用DATEVALUETIMEVALUE後跟所選單元格的NumberFormat屬性。如果您發佈代碼,提供建議會更容易,但如果沒有它,這裏就是您可以嘗試的一個示例。

Sub changeDateFormat() 
' 
' changeDateFormat Macro 
' Assuming the initial active cell (e.g., "A1") is a text of a date 
    Range("A1").Activate 

    While Not IsEmpty(ActiveCell) 
     ActiveCell.Offset(0, 1).Formula = "=DATEVALUE(RC[-1]) + TIMEVALUE(RC[-1])" 
     ActiveCell.Offset(0, 1).NumberFormat = "m/d/yy h:mm;@" 
     ActiveCell.Offset(1, 0).Activate 
    Wend 

End Sub 
相關問題