我在VBE中有12個文本框(每年1個月)有一個用戶窗體。還有一個額外的文本框應該顯示前12個框中每個框中的值的總和,當其他文本框中的值更改時更新和重新計算它自己。使用Class和WithEvents檢測文本框中的更改
有人幫助實施解決這個問題的解決方案非常感謝。
VBA: Detect changes in any textbox of the userform
但是我不確定要放什麼東西在事件部分下面的類:
我想實現的代碼是從後在服用。
注:這是我第一次嘗試使用類,所以我只是在學習。
我在VBE中有12個文本框(每年1個月)有一個用戶窗體。還有一個額外的文本框應該顯示前12個框中每個框中的值的總和,當其他文本框中的值更改時更新和重新計算它自己。使用Class和WithEvents檢測文本框中的更改
有人幫助實施解決這個問題的解決方案非常感謝。
VBA: Detect changes in any textbox of the userform
但是我不確定要放什麼東西在事件部分下面的類:
我想實現的代碼是從後在服用。
注:這是我第一次嘗試使用類,所以我只是在學習。
如果Class1
是你的類模塊的名稱,如果你希望所有文本框值的總和是在TextBox13
然後Userform1
在您的用戶窗體的名稱,
在Class1
模塊插入
Private WithEvents txtbox As MSForms.TextBox
Dim ctlr As Control
Public sum As Integer
Public Property Set TextBox(ByVal t As MSForms.TextBox)
Set txtbox = t
End Property
Private Sub txtbox_Change()
sum = 0
For Each ctlr In UserForm1.Controls
sum = sum + Val(ctlr)
Next ctlr
UserForm1.TextBox13 = sum - Val(UserForm1.TextBox13)
End Sub
,並在UserForm1
模塊插入
Private myEventHandlers As Collection
Private Sub UserForm_Initialize()
Dim txtbox As Class1
Set myEventHandlers = New Collection
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "TextBox" Then
Set txtbox = New Class1
Set txtbox.TextBox = c
myEventHandlers.Add txtbox
End If
Next c
End Sub
什麼?沒有提供任何有用的信息?上傳您的最新代碼嘗試,您的用戶 - 來自,我們可以幫助您的東西 –
謝謝Shai Rado。我編輯了這篇文章並添加了更多信息。希望你可以提供這些額外的信息。 – Albert