0
我想弄清楚如何在excel用戶窗體中獲取文本框來更新HTML文本框。例如,如果您的默認值設置爲「名字」,並且您在該文本框中單擊,它將消失並讓您輸入。一旦您點擊,如果您沒有輸入任何內容,它將返回到默認的「名字」。Userform文本框像html文本框一樣工作
我發現了很多關於這種類型的東西的問題,但沒有人爲我工作。這是我的代碼到目前爲止。
Sub QCToolsForm()
QCTools.Show vbModeless
End Sub
Private Sub RUBSTotalExpense_Enter()
Debug.Print "Enter"
If Me.RUBSTotalExpense.Value = "Total Expense" Then
Me.RUBSTotalExpense.Value = ""
End If
End Sub
Private Sub RUBSTotalExpense_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print "Exit"
If Me.RUBSTotalExpense.Value = "" Then
Me.RUBSTotalExpense.Value = "Total Expense"
End If
End Sub
Private Sub UserForm_Initialize()
updateDefault
End Sub
Public Function updateDefault()
If Me.RUBSTotalExpense.Value = "" Then
Me.RUBSTotalExpense.Value = "Total Expense"
End If
End Function
直到關閉用戶窗體,exit子纔會運行。我也曾嘗試失敗,並且沒有幸運地獲得焦點。我也在更新之前和之後嘗試過,但他們只在第一次工作。如果值爲「總費用」,我希望它每次在框中單擊時都會消失。當我離開文本框時,如何獲得exit sub或類似的內容?
我已經能夠通過將其更改爲afterupdate來獲取退出函數。我現在得到的問題是,只有在第一次點擊框中輸入纔會運行。 – Histerical
這是因爲AfterUpdate(和BeforeUpdate)僅在文本框的內容實際發生更改時觸發。當Enter事件將值更改爲「」時,內容會自動在第一次更改。下一次輸入時,該值已經是「」,並且未被修改。 編輯:如果您在文本框中鍵入內容,退出它,然後刪除該條目並再次離開,那麼AfterUpdate應該再次運行,因爲i)值已更改,並且ii)值爲空。 – Swaffle
不完全是,當我打開UserForm時,它顯示「總費用」。我點擊它,它會更新爲空白以便輸入。一旦我將它放在其他位置並保留空白,它會再次更新爲「總費用」。但返回後,它保持爲「總費用」而不是空白。 – Histerical