2016-12-04 35 views
1

我正在尝试拉取用户表单中选定月份和年份内的所有数据条目。我可以让代码运行良好时,我硬编码的一年,但我希望一年的文本框脱落。我使用Cint()Textbox的值转换为整数,并在我的if语句中将它变暗为“Year”。如果我编写Cdate("3/1/2016"),我可以实现它,但我想看看是否有方法来运行它,如:Cdate("3/1/Year")。我尝试了这种方式,并在Cdate中得到了与VBA相当的新匹配错误,所以请原谅我的愚蠢。在编码日期中使用变量

忽略“Month”变量我只是用它来停止代码并逐步查看它是否会进入我的if语句。

在此先感谢。

我的代码

Private Sub OKBtn_Click() 

Dim Sales As Range 
Dim Year As Integer 
Dim Month As Integer 
Dim i As Integer 

Year = CInt(YearText.Value)  
Set Sales = Worksheets("Sales").Range("A4")  

i = 0 
If Sales.Offset(i, 1).Value >= CDate("3/1/2016") And Sales.Offset(i, 1).Value <= CDate(" 3/31/2016 ") Then 
    Month = 1 
End If 
+0

尝试下面的代码,看看它是否适合你 –

回答

2

为了使CDate工作,你需要在括号内的刺独立2份

1.不变,你的情况“3/1 /”。

2.和变量CInt(YearText.Value)

Option Explicit 

Private Sub OKBtn_Click() 

Dim DDate As Date 
DDate = CDate("3/1/" & CInt(YearText.Value)) 

' for debug only 
MsgBox "Date entered is :" & DDate 

End Sub 
+0

谢谢你的工作完美! – jnal

+0

@jnal欢迎您,请标记为答案(在我的回答旁边放一点** V **) –