问题描述
我在 vba 下面有用于设置今天日期的用户表单文本框。现在,当数据输入到我的产品列表表的表格中时,日期会重新格式化。
Private Sub UserForm_Initialize()
txt_date.Value = Format(Date,"d/m/yyyy")
End Sub
因此,当数据添加到工作表中时,它会变成 m/d/yyyy。
解决方法
VBA 中使用的数据类型 + 写回工作表的方式将影响 Excel 解释数据的方式。查看更多示例:
Sub TestDate()
Dim datestr As String,dateDate As Date
datestr = "11/05/2021"
dateDate = "11/05/2021"
Sheet1.Range("A1").Value = CDate(datestr)
Sheet1.Range("C1").Value = dateDate
Sheet1.Range("A2").Value2 = CDate(datestr)
Sheet1.Range("C2").Value2 = dateDate
End Sub
通过使用“value2”,您可以看到定义为“日期”类型的 var 的原始数据如何发送回 Excel。恕我直言,这是最好的方法,但您必须直接在 Excel 工作表中设置正确的格式(选择列 > 格式单元格 > 日期 => 选择您想要的格式(您也可以在 vba 中设置,但我不这样做)不认为这里需要它)。
祝你好运,