[英]VBA Date values when inserted to Excel cells change their format
我的日期變量格式如下: 25_December_2010
一旦我使用
Dim strDate As String
strDate = "25_December_2010"
strDate = Replace(strDate,"_"," ")
MsgBox strDate
果然彈出一個MsgBox
並給我:2010年12月25日。
但是,一旦我嘗試將值放入單元格 ,例如:
Sheets("Sheet1").Range("A1").Value = strdate
而不是向該cell
填充: 25 December 2010
; Excel自行執行操作,並用令人討厭的條目配置填充單元格: 25-Dec-2010
!
如何在我的單元格之間插入沒有hyphen
字符且沒有修剪月份的名字?
此代碼以您想要的格式將日期放入A1中:
Option Explicit
Sub WriteDate()
Dim strDate As String
strDate = "25_December_2010"
strDate = Replace(strDate, "_", " ")
MsgBox strDate
With Sheets("Sheet1").Range("A1")
.Value = strDate
.NumberFormat = "dd mmmm yyyy"
End With
End Sub
我不確定是否有必要,但是為了清楚起見,由於strDate是字符串數據類型,因此我可能會使用
.Value = CDate(strDate)
在將其寫入工作表之前,將其顯式轉換為Date數據類型在非英語版本中可能很有用,但我沒有對此進行專門檢查。
使用自定義日期格式:
Sheets("Sheet1").Range("A1").NumberFormat = "dd mmmm yy" //A1 = 25 December 10
Excel工作表沒有錯,所以請不要再說錯了。 日期是從開始日期算起的天數。 所以日期是NUMBER 。 您可以根據需要格式化它。
這是VBA,盡管開始日期不同,但是excel相似。
日期變量以IEEE 64位(8字節)浮點數存儲,代表日期范圍為9999年1月1日至9999年12月31日,時間為0:00:00至23:59:59。 任何可識別的文字日期值都可以分配給Date變量。 日期文字必須包含在數字符號(#)中,例如,#January 1,1993#或#1 Jan 93#。
日期變量根據計算機識別的短日期格式顯示日期。 時間根據計算機識別的時間格式(12小時或24小時)顯示。
當其他數字類型轉換為日期時,小數點左邊的值表示日期信息,而小數點右邊的值表示時間。 午夜為0,午夜為0.5。 負整數表示1899年12月30日之前的日期。
日期8字節100年1月1日至9999年12月31日
這就是在Excel中記錄所顯示的內容。
Selection.NumberFormat = "d mm yyyy"
這對我有用
Sub DateF()
Dim strDate As String
strDate = "25_December_2010"
strDate = Replace(strDate, "_", " ")
MsgBox strDate
Worksheets("Sheet1").Range("A1").NumberFormat = "dd mm yy"
Worksheets("Sheet1").Range("A1").Value = strDate
End Sub
我也從工作表中更改了它。 到工作表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.