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