在编码日期中使用变量



我正在尝试将所有数据输入在选定的月份和年份中。当我硬编码一年时,我可以将代码运行正常,但我希望这一年从文本框中脱颖而出。我使用Cint()Textbox值转换为整数,然后在我的If语句中将其调整为"年"。如果我编写Cdate("3/1/2016"),我可以使它起作用,但是我想看看是否有办法像:Cdate("3/1/Year")一样运行它。我尝试过它,并在CDATE上遇到了一个Typematch错误,这是VBA的新手,请原谅我的愚蠢。

忽略"月"变量,我只是在使用它来停止代码,然后逐步查看它是否会输入我的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  

,为了使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

最新更新