1. 使用DateTimePicker控件
VBA中默认的User Form的Toolbox中的控件并不包含DateTimePicker,是接受时间相关数据的输入,在Toolbox上右击“Additional Controls”,在弹出的对话框中选择“Microsoft Date and Time Picker Control 6.0”
2. User Form的返回值
默认情况下,User Form并没有返回值(有意思的是,MsgBox倒是有返回值),那如何判断弹出的对话框是被点击了OK按钮还是Cancel按钮呢?
一个简单的方法是,
(1) 在User Form的Module中定义全局变量
Public ClickedByOK As Boolean
(2) 在对应的按钮响应方法中设置该变量
Private Sub btnCancel_Click()
ClickedByOK = False
Me.Hide
End Sub
Private Sub btnOK_Click()
ClickedByOK = True
Me.Hide
End Sub
(3) 在窗口结束后判断该变量的值
Dim dlg As New dlgRememberItem
dlg.Show
If dlg.ClickedByOK = False Then
Exit Sub
End If
3. 处理时间相关数据
因为VBA只提供了一个简单的Date 数据类型,这无疑给时间相关数据的处理带来了复杂度;
一个非常好的VBA中处理时间数据的资源: http://dmcritchie.mvps.org/excel/datetime.htm
4. 常用的一些语法
退出Sub | EXIT SUB |
---|---|
Debug输出 | Debug.Print |
For循环 | For i = 1 To 100 ' Logic Next i |
Do/While循环 | Do While t > 0 Loop |
While循环 | While t > 0 Wend |