Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Excel VBA中的日期和时间选择器比较选择的日期时间_Excel_Vba - Fatal编程技术网

使用Excel VBA中的日期和时间选择器比较选择的日期时间

使用Excel VBA中的日期和时间选择器比较选择的日期时间,excel,vba,Excel,Vba,所以我有一个多页表单,它使用两个名为StartDate和EndDate的“日期和时间选择器”控件。我希望确保用户输入的开始日期不会晚于结束日期。我有以下问题。StartDate.value最初是“”还是null?StartDate返回的是字符串还是日期?这是我到目前为止所拥有的 顺便说一句,即使在阅读了文档之后,我也对这行代码感到有些困惑 emptyRow=Application.WorksheetFunction.CountA(范围(“A:A”))+1 Private Sub-StartDat

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

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

emptyRow=Application.WorksheetFunction.CountA(范围(“A:A”))+1

Private Sub-StartDate_Change()
暗空如长
'立即提交第一个空行中的日期,因为表单在页面更改后不保留datepicker数据。
如果(EndDate.Value)“”和CDate(StartDate.Value)>=CDate(EndDate.Value),则
MsgBox(“请输入有效日期”)
MultiPage1.Value=4
其他的
表1.激活
emptyRow=Application.WorksheetFunction.CountA(范围(“A:A”))+1
单元格(emptyRow,18)。值=起始日期。值
如果结束
端接头

日期时间选择器
返回日期

如果要测试EndDate是否大于StartDate,则应使用如下代码:


(StartDate.Value
日期时间选择器
返回
日期

如果要测试EndDate是否大于StartDate,则应使用如下代码:


(StartDate.Value
CountA
对非空白单元格进行计数。因此,该行在列A中查找所有非空格,并添加1以获得最后一个空行。这仅在列中没有空格时有效。
CountA
统计非空白单元格。因此,该行在列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