在vba中input框的date范围?

我有一个Excel文件,并在第一列(A)我有这样的date:

17/10/2013 18/10/2013 19/10/2013 20/10/2013 21/10/2013 22/10/2013 

其他列包含一些数据。 我需要创build一个input框,将date范围内的所有东西都包含进去。 我的意思是; 我点击button,它显示我像一个popup窗口:

 insert start date: 17/10/2013 (i can decide the date) insert end date: 20/10/2013 (i can decide the date) 

然后我可以把我做的一个macros。 所以我的macros只读取该范围内的数据。 可能吗?

没有具体的datetypes,所以你将不得不做一些错误检查。 以下是如何从用户获取date的一个想法:

 Dim dateString As String, TheDate As Date Dim valid As Boolean: valid = True Do dateString = Application.InputBox("Enter A Date: ") If IsDate(dateString) Then TheDate = DateValue(dateString) valid = True Else MsgBox "Invalid date" valid = False End If Loop Until valid = True 

您可以将date时间选取器添加到您的使用表单中,并按如下所示testing您的范围的input:

打开你想要input的VBA和表单。

在工具箱中右键单击并select其他控件

在这里输入图像描述

然后在列表框中selectMicrosoft Date and Time Picker Control:

在这里输入图像说明

将控件添加到您的窗体中:

在这里输入图像说明

然后在DTPicker1_Change()事件下按如下所示设置代码:

在这里输入图像说明

 Private Sub DTPicker1_Change() If DTPicker1.Value < DateSerial(2013, 10, 20) And DTPicker1.Value > DateSerial(2013, 10, 15) Then Debug.Print "Put Your Code Here" End If End Sub 

将date更改为您自己的并添加您的代码。

注意:此控件中有大量的设置,从颜色到显示types,checkbox,下拉式样,默认值最小和最大date。 而且自定义date格式也可以基于语言环境应用。