【发布时间】:2012-09-17 13:37:04
【问题描述】:
我有一个在执行期间创建文本框的 excel 用户窗体。代码如下;
Dim CompHandler() As New CCompHandler
Dim tb As MSForms.TextBox
Dim count As Integer
For i in Range(something)
If i = anotherthing Then
Set tb = UserForm1.Controls.Add("Forms.TextBox.1", "tb" & count)
With tb
.Width = iTbWidth
.Top = count * distance
.Left = iTbLeft
.Height = iTbHeight
.Value = Cells(row, column)
ReDim Preserve CompHandler(0 To count)
Set CompHandler(count).TextBoxGroup = tb
End With
count = count + 1
End If
Next i
我想将更改后的值写回相应的单元格。
我已经能够在盒子发生变化时获得新值,并在 class called CCompHandler 上使用此代码获得新值:
Option Explicit
Public WithEvents TextBoxGroup As MSForms.TextBox
Private Sub TextBoxGroup_Change()
MsgBox TextBoxGroup
End Sub
所以.. 关于如何获取哪个文本框已更改的任何想法? 或者也许有更好的方法来做到这一点? 提前致谢
【问题讨论】:
-
CompHandler 是如何定义的? Componentes 是用户表单吗?如果不做很多猜测,我就无法测试或摆弄这个。介意给我们剩下的代码吗?
-
@DanielCook:我说得更清楚了。
标签: vba excel event-handling excel-2010