我正在尝试将所有数据输入在选定的月份和年份中。当我硬编码一年时,我可以将代码运行正常,但我希望这一年从文本框中脱颖而出。我使用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