gpt4 book ai didi

excel - VBA CDate(Now()) 导致类型不匹配

转载 作者:行者123 更新时间:2023-12-04 22:16:55 25 4
gpt4 key购买 nike

似乎我一直在 VBA excel 中发现罕见的错误。CDate(Now())导致“编译错误:预期:标识符”和“运行时错误:'13':类型不匹配”

Cell(1,1) = Now()
Date1 = Cell(1,1).Value
cell(1,2) = Now()
Date2 = Cell(1,2).Value
If CDate(Date1) > CDate(Date2) Then
MsgBox "Date1 is older than date2"
End If
Now() 返回“星期四,21 年 6 月 24 日上午 1 点 20 分 14 秒”
谢谢您的帮助。

最佳答案

使用Option Explicit并正确声明您的变量。确保 Date1被声明为 As DateAs Double不是 As String .还要确保您的单元格是 不是 格式化为文本,但可以是一般数字格式或日期格式。
另请注意 Now function不返回字符串 "Thu, 6/24/21 1:20:14 AM"正如你所说,但一个数字 Variant/Date .它只是显示为一个字符串。
像下面这样的东西应该可以正常工作:

Option Explicit

Public Sub Example()
Cells(1, 1) = Now ' stores a number like 44371,3385185185 in the cell that is shown in your desired format eg as 2021-06-24 08:07:28 (depends on your number format)
Dim Date1 As Date
Date1 = CDate(Cells(1, 1).Value) ' reads the Double value 44371,3385185185 from the cell and converts it into date

Cells(1, 2) = Now
Dim Date2 As Date
Date2 = CDate(Cells(1, 2).Value)

If Date1 > Date2 Then
MsgBox "Date1 is older than date2"
End If
End Sub
如果这引发错误,您的单元格可能被格式化为文本。

关于excel - VBA CDate(Now()) 导致类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68110076/

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