Excel VBA日期格式错误

oalqel3c  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(238)

我在将表单中输入的日期写入Excel工作表时遇到问题。表单输入字段中的日期格式为“dd/mm/yyyy”。当我运行代码时,日、月和年都被正确标识。但是,当把日期写到一张纸上时,它会把它写成“mm/dd/yyyy”的格式,把日和月弄混了。我如何确保日期是以“dd/mm/yyyy”格式书写的?
例如:输入的日期为2023年7月10日,代码在Excel表中写入2023年10月7日。
下面是我的代码和一些图片...

Private Sub OKButton_Click()

...
    
    'testing date
    Dim orderDate As Date
    Dim dayDate As Integer
    Dim monthDate As Integer
    Dim yearDate As Integer
    orderDate = releaseDate.Value
    dayDate = day(releaseDate.Value)
    monthDate = Month(releaseDate.Value)
    yearDate = Year(releaseDate.Value)
    
    Cells(lastRow, 7).Value = Format(releaseDate.Value, "dd / mm / yyyy")
    
...
    
   
End Sub

表单输入

日期代码

工作表中的日期

感谢你的帮助!
谢谢
亲切问候Jan

jhdbpxl9

jhdbpxl91#

Excel处理要显示为日期的数据:

直接在单元格中

  • 接受本地格式,在控制面板的区域和语言中设置
  • 可接受不同的分离器。如:/(斜线).(点)-(连字符)(但数字的小数点不带)

格式:一般

  • 如果数据被接受为日期格式,则更改为控制面板的区域和语言中设置的本地格式
  • 所有其他显示为常规

格式:日期

  • 如果数据被接受为日期,则结果以格式集显示。
  • 数字显示为日期
  • 无法识别的日期显示为文本
    来自VBA
  • 仅接受VBA格式。(月/日/年)
  • 输入可以是字符串、表达式或函数的结果,也可以是#date#(散列标记)中的日期
  • 分隔符可以是:/(斜线),-(连字符)

格式:一般

  • 如果数据被接受为日期格式,则更改为控制面板的区域和语言中设置的本地格式
  • 所有其他显示为常规

格式:日期

  • 数字和接受日期以单元格的“日期格式”中设置的格式显示
  • 不接受的日期和文本显示为字符串

也许,还有其他的变化,但这涵盖了你的问题的答案。

mv1qrgav

mv1qrgav2#

根据提供的输入,我添加了下面的代码,解决了这个问题。感谢大家的帮助!

Dim orderDate As Date
Dim integerDate As Double
orderDate = releaseDate.Value
integerDate = Int(CDbl(orderDate))
Cells(lastRow, 7).Value = integerDate
cnjp1d6j

cnjp1d6j3#

在这种情况下,您可以使用“yyyy/mm/dd”来强制excel将日放在第一位,然后是月。

Cells(lastRow, 7).Value = Format(releaseDate.Value, "yyyy/mm/dd")

相关问题