我输入开始日期和结束日期并执行从 Outlook 导出的代码。
Sub ExportFromOutlook()
Dim dteStart As Date
Dim dteEnd As Date
dteStart = InputBox("What is the start date?", "Export Outlook Calendar")
dteEnd = InputBox("What is the end date?", "Export Outlook Calendar")
Call GetCalData(dteStart, dteEnd)
End Sub
Run Code Online (Sandbox Code Playgroud)
我希望当我按下任何输入框上的“取消按钮”时退出子程序,而不是在 VBA 代码中出现错误来调试它。
不合格的InputBox是VBA.InputBox。它返回一个String,而不是日期,您可以StrPtr用来确定是否按下了取消:
Dim dteStart As Date
Dim dteEnd As Date
Dim t as string
t = InputBox("What is the start date?", "Export Outlook Calendar")
If StrPtr(t) = 0
Exit Sub
Else
dteStart = CDate(t)
End If
t = InputBox("What is the end date?", "Export Outlook Calendar")
If StrPtr(t) = 0
Exit Sub
Else
dteEnd = CDate(t)
End If
Run Code Online (Sandbox Code Playgroud)
如果您切换到Application.InputBox返回 Variant 的Excel 的,它可能会变得更简单一些:
Dim dteStart As Date
Dim dteEnd As Date
Dim t as Variant
t = Application.InputBox("What is the start date?", "Export Outlook Calendar", Type:=2)
If t = False
Exit Sub
Else
dteStart = CDate(t)
End If
t = Application.InputBox("What is the end date?", "Export Outlook Calendar", Type:=2)
If t = False
Exit Sub
Else
dteEnd = CDate(t)
End If
Run Code Online (Sandbox Code Playgroud)