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

时间:2016-03-23 11:23:51

标签: excel vba excel-vba

我一直在尝试使用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

当我单步执行代码时,我遇到了“类型不匹配错误”#39;在

myBool1 = Evaluate(myDate1 & myOperator & myDate2)

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

提前谢谢

1 个答案:

答案 0 :(得分:2)

如果您的日期采用dd/mm/yyyy格式,那么评估表达式就会有效,但格式为m/dd/yyyy hh:mm:ss am/pm

由于我们知道Excel以数字格式存储日期和时间,因此只需尝试此操作即可:)

Dim myDate1 As Double
Dim myDate2 As Double
相关问题