簡體   English   中英

插入Excel單元格時的VBA日期值會更改其格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM