gpt4 book ai didi

vba - 使用 Evaluate 比较日期类型和 int 类型

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

我一直在尝试使用 Excel (office2010) 中的 Evaluate 函数来比较日期类型,但一直碰壁。感谢任何帮助。
下面是使用的子程序

Sub tyrEval()
Dim myDate1 As Date
Dim myDate2 As Date
Dim myInt1 As Integer
Dim myInt2 As Integer
Dim myBool As Boolean
Dim myBool1 As Boolean
Dim myBool2 As Boolean
Dim myOperator As String
myDate1 = CDate("3/13/2016 01:04:53 am")
myDate2 = CDate("3/13/2016 12:23:37 am")
myOperator = ">"
myInt1 = 7
myInt2 = 6

myBool = Evaluate(myInt1 & myOperator & myInt2)
myBool1 = Evaluate(myDate1 & myOperator & myDate2)
myBool2 = myDate1 > myDate2

'myBool1 = Evaluate(Chr(34) & myDate1 & Chr(34) & myOperator & Chr(34) & myDate2 & Chr(34)) - working but wrong answer
'myBool1 = Evaluate(Chr(34) & "myDate1" & Chr(34) & myOperator & Chr(34) & "myDate2" & Chr(34)) - working but wrong answer
'myBool = Evaluate(myInt1 & myOperator & myInt2) - works
End Sub

当我单步执行代码时,出现“类型不匹配错误”
myBool1 = Evaluate(myDate1 & myOperator & myDate2)

myBool 和 myBool2 正在按预期获得结果。我无法弄清楚 myBool1 语句中的错误。我曾尝试在不同的位置添加 chr(34),但它不能让我去任何地方。注释掉的行显示了一个这样的变体,它出现了 myBool1 ='FALSE' 我猜测比较操作是作为字符串类型而不是日期类型完成的。

先感谢您

最佳答案

如果您的日期格式为 dd/mm/yyyy那么评估表达式会起作用,但它的格式是 m/dd/yyyy hh:mm:ss am/pm
由于我们知道 Excel 以数字格式存储日期和时间,因此只需尝试一下,它就会起作用 :)

Dim myDate1 As Double
Dim myDate2 As Double

关于vba - 使用 Evaluate 比较日期类型和 int 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36176843/

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