簡體   English   中英

將日期格式化為單元格中的yyyy-mm-dd

[英]Formatting date to yyyy-mm-dd in cell

在[excel-vba]中,我嘗試從UserForm文本框格式化文本,將其格式化為yyyy-mm-dd並使用以下代碼將其輸入到單元格中:

Private Sub GenerateButton_Click()
    Worksheets("Sheet1").Activate

    Sheet1.Unprotect
    Dim startTime, endTime, startDate
    startTime = t_daylasthour.Text
    endTime = t_daylasthour.Text
    startDate = t_startdate.Value

    Dim counter As Integer
    counter = 1

    Do
        Set field = ActiveWorkbook.Sheets("Sheet1").Cells(counter + 1, 1)
        field.Value = Format(t_startdate.Text, "yyyy-mm-dd") 
        counter = counter + 1
    Loop While counter < 10

End Sub

單元格中的輸出以yyyy / mm / dd的形式保持顯示。 我在代碼中嘗試的任何其他格式似乎都有效。 我試過yyyy - mm - dd例如,它工作,但每次我嘗試上面代碼中列出的格式,它沒有。

關於我做錯了什么的任何想法?

該值以文本形式出現,但單元格的常規格式將其轉換為真實日期值。 最好保留該真實日期值並更改單元格的Range.NumberFormat屬性以按您希望的方式顯示日期。

Do
    Set field = ActiveWorkbook.Sheets("Sheet1").Cells(counter + 1, 1)
    field = CDate(t_startdate.Text) 
    field.NUMBERFORMAT = "yyyy-mm-dd"
    counter = counter + 1
Loop While counter < 10

或者, Range.Value屬性設置為text-that-like-a-date 之前 ,將單元格的Range.NumberFormat屬性設置為Text而不是General。

Do
    Set field = ActiveWorkbook.Sheets("Sheet1").Cells(counter + 1, 1)
    field.NUMBERFORMAT = "@"
    field.Value = Format(t_startdate.Text, "yyyy-mm-dd") 
    counter = counter + 1
Loop While counter < 10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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