gpt4 book ai didi

excel - DateAdd 函数在 VBA 中显示 1900 年的日期

转载 作者:行者123 更新时间:2023-12-04 22:13:43 24 4
gpt4 key购买 nike

我遇到了这个奇怪的问题,我真的不明白发生了什么。
我有下面的代码
VBA代码:

Dim tddate As Date
Dim expdate As String
Dim inputdate As String

tddate = Worksheets("Sheet3").Range("pdate").Value
inputdate = TextBox1.Value
expdate = Format(DateAdd("m", 18, tddate), "dd/mm/yyyy")

If inputdate = expdate Then
Range("A1").Value = TextBox1.Value
Else
MsgBox "Input the correct date"
Cancel = True
End If
它将用户输入与必须在文本框中的日期进行比较......直到昨天它工作完美,完全没有问题
今天我继续我的 excel 项目的工作 If I Debug.Print expdate 变量它显示的日期是 30/06/1901 !!!!!!
PS。如果我现在 Debug.Print 它显示正确的日期
PS.2。我正在使用 Excel 2019,但我在另一台使用 Excel 2016 的笔记本电脑上尝试了工作簿并显示相同的内容。 (第二次尝试是因为我昨天改变了我的内存——每次在我的系统中都是正确的——我以为我搞砸了)

最佳答案

尝试使用真实的日期值,而不是文本:

Dim tddate      As Date
Dim expdate As Date
Dim inputdate As Date

tddate = Worksheets("Sheet3").Range("pdate").Value
If IsDate(TextBox1.Value) Then
inputdate = DateValue(TextBox1.Value)
expdate = DateAdd("m", 18, tddate)
If DateDiff("d", inputdate, expdate) = 0 Then
Range("A1").Value = inputdate
Else
Cancel = True
End If
Else
Cancel = True
End If

If Cancel Then
MsgBox "Input the correct date"
End If

关于excel - DateAdd 函数在 VBA 中显示 1900 年的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71304604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com