我试图在我在Excel工作簿的VBA命令按钮中使用的提示中设置警告。
它在两天前运作良好,但它目前无效,我不明白为什么。在这里你有以前工作的代码:
Option Explicit
Private Sub CommandButton1_Click()
Dim wb As Workbook Dim FinalDate As Variant
Set wb = Application.Workbooks("Test")
FinalDate = InputBox("Introduce the final date for analysis in the
following format MM/DD/YYYY")
'< Check that final date is in the correct format
If IsDate(FinalDate) = False Then
MsgBox ("The date you entered is NOT IN THE CORRECT FORMAT!!!")
Exit Sub
End If
'<Check that final date is NOT later than today
If FinalDate > Now Then '< **This part is the one that used to work**
MsgBox ("The date you entered is LATER THAN THE CURRENT DATE!!!")
Exit Sub
End If
wb.Worksheets("Sheet1").Range("K2") = FinalDate
End Sub
这是之前正在运作的部分,但昨天停止了工作:
If FinalDate > Now Then
MsgBox ("The date you entered is LATER THAN THE CURRENT DATE!!!")
Exit Sub
End If
目前,每当我在此提示屏幕中引入任何日期时,无论是晚于或早于当前日期,我都会收到警告&#34;您输入的日期晚于当前日期! !!&#34;
Excel工作簿中唯一发生变化的是,不同电子表格中有多个单元格包含将来约会的未来日期,但函数now()应该检查系统日期,而不是工作簿中的日期,不是吗?
非常感谢,
最诚挚的问候,
Yatrosin
答案 0 :(得分:3)
您的问题是您正在将用户输入的字符串与now函数返回的日期进行比较。
这个值有两种不同的类型。
If FinalDate > Now Then
您应该使用CDate()
将FinalDate转换为日期if CDate(FinalDate) > Now Then