如何强制date格式为YYYY-MM-DD在用户名后面的代码在Excel中的和平

在工作表“Verzendlijst_PostNL”的单元格B2中,date将通过TextBox:txtDateinput,然后用填充到下一个包含数据的行。 这工作正常,但我需要date强行YYYY-MM-DD在行excelsheet。 我把什么代码放在哪里? 谢谢

Private Sub cmdAdd_Click() Dim ws As Worksheet Dim LastRow As Long Set ws = Worksheets("Verzendlijst_PostNL") ws.Range("B2") = txtDate.Value ws.Range("J2") = txtDes.Value LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row Range("B2:B" & LastRow).FillDown LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row Range("J2:J" & LastRow).FillDown Me.txtDate.Value = "" Me.txtDes.Value = "" Me.txtDate.SetFocus End Sub 

我在Excel文件中重新创build了问题,并提出了以下(工作)解决scheme:

 Option Explicit Private Sub cmdAdd_Click() Dim ws As Worksheet Dim LastRow As Long Set ws = ThisWorkbook.Worksheets("Verzendlijst_PostNL") If IsDate(Me.txtDate.Value) Then ws.Range("B2").Value = CDate(Me.txtDate.Value) Else ws.Range("B2").Value = Me.txtDate.Value End If If IsDate(Me.txtDes.Value) Then ws.Range("J2").Value = CDate(Me.txtDes.Value) Else ws.Range("J2").Value = Me.txtDes.Value End If LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ws.Range("B2:B" & LastRow).FillDown ws.Range("J2:J" & LastRow).FillDown ws.Range("B2:B" & LastRow).NumberFormat = "YYYY-MM-DD" ws.Range("J2:J" & LastRow).NumberFormat = "YYYY-MM-DD" Me.txtDate.Value = "" Me.txtDes.Value = "" Me.txtDate.SetFocus End Sub 

在这里输入图像说明

注意:

代码正在validation文本框txtDatetxtDesctxtDate有可识别的date。 只有在这种情况下,VBA才会尝试将TEXT转换为实际的date。 如果不是这样的话,那么VBA会把TEXT插入到单元格中,尽pipedate格式 – 这些值将被显示为(无法识别的)文本。