在做DataLink月报的时候,我们需要输入 2006 10 这样的年份和月份
可以用日历控件 left 年和月 但是不是很好看
也可以去下载别人做的月份控件 但是需要客户安装
所以我们一般简单使用2个combobox来显示年和月
开始思维比较偷懒
简单的 往combox加上年和月就over了
For i = 2004 To 2020
Sheet1.ComboBox1.AddItem Str(i)
Next i
For i = 1 To 12
If i <= Month(Now) Then
Sheet1.ComboBox2.AddItem Str(i)
End If
Next i
结果这样在客户选择时间的时候
还要去做一个判断
如果他们选取的时间 大于现在时间 还要跳出msgbox 让他们重新选择
我非常不喜欢中断客户的操作
例如
Private Sub ComboBox1_Change()
If ComboBox1.Text > CInt(Format(Now, "yyyy")) Then
MsgBox "请不要选择大于今年的年份"
ComboBox1.Text = Format(Now, "yyyy")
End If
End Sub
后来 想了想,在开始的时候 加个判断 一开始就不添加大约现在的时间
For i = 2004 To 2020
If i <= Year(Now) Then
Sheet1.ComboBox1.AddItem Str(i)
End If
Next i
For i = 1 To 12
If i <= Month(Now) Then
Sheet1.ComboBox2.AddItem Str(i)
End If
Next i
这样就好了 新的时间到来的时候 自然会有新月份 新年份近来
也避免可客户选错时间 白白计算
但是客户在选择过去的年份的时候 要做个判断
Private Sub ComboBox1_Change()
If ComboBox1.Text < CInt(Format(Now, "yyyy")) Then
For i = 2004 To 2020
Sheet1.ComboBox1.AddItem Str(i)
Next i
End If
End Sub
你们还有更好的时间 请告诉我
谢谢!