2017-05-31 136 views
0

我有一個用戶窗體,它具有從=Now()函數填充的文本框。然而,我正在跟蹤的數據按照3班的時間表運行,所以「第3班」在技術上將在第二天輸入他們的數據。我已經使用if語句對此進行了調整,但是我的問題是讓我的文本框更新組合框的更改,使您可以選擇要輸入的換檔。我在另一位幫助者的建議中嘗試了DoEvents功能,但它沒有奏效。提前致謝!使用VBA刷新用戶表單文本框

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 shift_cbox_Change()而不是Private Sub date_txtb_Change()

+0

非常感謝你的工作!對於VBA來說還是新手,所以我很感激這個幫助 – accortdr

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