我正在尝试提取选定月份和年份的用户表单中的所有数据条目。我可以让代码在我今年硬编码时运行正常,但我想要从文本框中取出年份。我使用Textbox
将Cint()
值转换为整数,并将其调整为"年"在我的if语句中。如果我写Cdate("3/1/2016")
,我可以让它工作,但我想知道是否有办法运行它:Cdate("3/1/Year")
。我试过这种方式并且在Cdate Im上得到一个类型匹配错误,这对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
答案 0 :(得分:2)
为了让CDate
起作用,你需要将括号内的蜇伤分成两部分
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