Excel用戶窗體出現奇怪的問題。VBA:用戶窗體Textbox_Change僅適用於一次
我有2個用戶表單,一個帶有文本框,另一個帶有按鈕。帶有文本框的文本框使用Textbox_Change事件來跟蹤框中的內容,並在輸入10個字符後加載Userform2。
當Userform2初始化時Userform1被卸載。 Userform2有一個按鈕,然後重新加載Userform1。
這是我的最終結果的一個非常簡單的版本,但我需要看到它的最基本的形式,以確保它不是我的代碼導致問題。
無論如何,當我在Userform1的文本框中輸入時,它會跟蹤TextBox1的更改,但在重新加載之後,它將停止跟蹤。
以下是我的代碼。
Userform1:
Dim Iteration As Integer
Private Sub TextBox1_Change()
Debug.Print Me.TextBox1.Value
Iteration = Iteration + 1
If Iteration = 10 Then
UserForm2.Show
End If
End Sub
Private Sub UserForm_Initialize()
Iteration = 0
End Sub
Userform2:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Private Sub UserForm_Initialize()
Unload UserForm1
End Sub
這是因爲它可能是簡單。
當我第一次加載Userform1我進入到文本框中輸入「1234567890」,其輸出的控制檯:
1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
正如預期的那樣。
但是,在我加載Userform2然後單擊按鈕重新加載Userform1時,當我在文本框中輸入「abcdefghij」時,它不會向控制檯輸出任何內容。
有沒有我在這裏失蹤的用戶表單的一些基本概念?或者我出錯了?我看不到任何會引起這種情況的東西。
我一直在閱讀什麼卸載和實際顯示,我找不到會影響事件是否應該觸發的任何事情。從我知道當你運行Userform.show它重新初始化一切,但即使它不應該仍然應該輸出SOMETHING到控制檯。
任何人都可以幫忙嗎?
編輯:即使 更改用戶窗體1是:
Dim Iteration As Integer
Private Sub TextBox1_Change()
Debug.Print Me.TextBox1.Value
Iteration = Iteration + 1
If Iteration = 10 Then
Unload Me
UserForm1.Show
End If
End Sub
Private Sub UserForm_Initialize()
Iteration = 0
End Sub
它仍然不跟蹤上繞第二圈時的變化。
你會首先使用兩種形式? – jsotola