【问题标题】:Compare date times chosen with date and time picker in Excel VBA使用 Excel VBA 中的日期和时间选择器比较选择的日期时间
【发布时间】:2016-05-06 04:40:44
【问题描述】:

所以我有一个多页表单,它使用两个名为 StartDate 和 EndDate 的“日期和时间选择器”控件。我想确保用户输入的 StartDate 不晚于 EndDate。我有以下问题。 StartDate.value 最初是“”还是为空? StartDate 返回的内容是字符串还是日期?这是我目前所拥有的。

顺便说一句,即使在阅读了文档之后,我也对这行代码感到有些困惑。

emptyRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1

Private Sub StartDate_Change()
Dim emptyRow As Long
'Submits the date in the first empty row immediately since the form does not retain datepicker data after the page changes.
If (EndDate.Value) <> "" And CDate(StartDate.Value) >= CDate(EndDate.Value) Then
MsgBox ("Please enter a valid date")
MultiPage1.Value = 4


Else
Sheet1.Activate
emptyRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1
Cells(emptyRow, 18).Value = StartDate.Value

End If
End Sub

【问题讨论】:

  • CountA 计算非空白单元格。因此,该行在 A 列中查找所有非空白并添加 1 以获得最后一个空行。这仅在列中没有间隙时才有效。

标签: excel vba


【解决方案1】:

DateTimePickers返回Dates

如果您想测试 EndDate 是否大于 StartDate,那么下面的代码应该可以解决问题:

(StartDate.Value &lt; EndDate.Value)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-11
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    相关资源
    最近更新 更多