我有一个UserForm,其中包含一个从=Now()
函数填充的文本框。但是,我跟踪的数据是按照3班制计划运行的,所以"第3班"技术上会在第二天输入他们的数据。我已经使用if语句对此进行了调整,但我的问题是让我的文本框更新组合框的更改,允许您选择要输入的内容。我在另一个帮助站点的建议中尝试了DoEvents功能,但它没有用。提前谢谢!
Private Sub date_txtb_Change()
If shift_cbox.Text = "Shift 1" Then
date_txtb.Text = Format(Now(), "MM/DD/YY") 'Current Date
DoEvents
ElseIf shift_cbox.Text = "Shift 2" Then
date_txtb.Text = Format(Now(), "MM/DD/YY") 'Current Date
DoEvents
ElseIf shift_cbox.Text = "Shift 3" Then
date_txtb.Text = Format(Now() - 1, "MM/DD/YY") 'Current Date -1
DoEvents
Else
'do nothing'
End If
End Sub
。
答案 0 :(得分:0)
您使用的是错误的对象。您应该使用Private Sub date_txtb_Change()
而不是Private Sub shift_cbox_Change()
。
答案 1 :(得分:0)
您需要在组合框的Change
事件中输入代码,同时您可以使用Select Case
来获得更清晰,更短的代码,这样您还可以使用更多功能来添加更多代码未来的情景(如果你需要)。
Private Sub shift_cbox_Change()
Select Case shift_cbox.Value
Case "Shift 1", "Shift 2"
date_txtb.Text = Format(Now(), "MM/DD/YY") 'Current Date
Case "Shift 3"
date_txtb.Text = Format(Now() - 1, "MM/DD/YY") 'Current Date -1
Case Else
'do nothing , or something for future scenario
End Select
End Sub