我有一个excel UserForm,它在执行期间创建文本框。 代码如下;

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

那么..关于如何获得哪个文本框已更改的任何想法? 或者可能有更好的方法吗? 提前致谢

#1楼 票数:3 已采纳

Tag属性通常用于这样的事情。 在创作时添加如下内容:

With tb
  ...
  .Tag = i.Address
...
End With

然后,您可以使用以下内容访问Tag属性:

Debug.Print tbWhoseValueHasChanged.Tag

你的代码片段有很多未定义/不清楚的变量,包括i 我假设它是上面的范围变量。

  ask by ramtoo translate from so

未解决问题?本站智能推荐:

1回复

excel-vba中“=”的作用是什么?

很难说出这里的要求。 这个问题是模棱两可的,模糊的,不完整的,过于广泛的或修辞性的,不能以目前的形式合理地回答。 如需帮助澄清此问题以便可以重新打开, 请访问帮助中心 。
9回复

循环遍历表列中的所有行,Excel-VBA

我目前正在处理一个数据集,其格式为表格,带有标题。 我需要做的是循环遍历特定列中的所有单元格并更改内容。 通过对MSDN的研究,我想出了以下for循环 因此,这会将第23列中的所有单元格更改为“PHEV”。 但是,我没有构建我自己正在使用的表,所以我不能保证我感兴趣的列将是第23列。
1回复

excel-vba-userform-frame-设置滚动条位置

如何设置框架的滚动条位置(在用户窗体内)? 案子: 我在userform中有一个具有动态内容的框架。 因此,如果内容太大而无法适应框架,则(动态地)在该框架中创建滚动条。 滚动条还具有动态值,遵循帧内容大小。 更新滚动条的代码如下: 所以我想有一些东西将滚动条发送到底部位置!
1回复

使用excel-vba宏将信息从前6行的特定列复制并粘贴到一个工作簿中

因此,我需要从一个工作簿的特定列中复制信息,并将此信息粘贴到另一工作簿的特定列中。 我通过编写以下代码成功完成了此操作: 我特别想做的是仅从WorkbookA的前6个可见记录中复制并粘贴此信息,而这些记录并非来自(单元格编号1至6) 目前,所有行中的信息都将被复制和粘贴。 我如何以
4回复

除非空白,否则Excel页眉/页脚不会通过VBA更改

免责声明:自从我(很多)使用VBA工作已经有几年了,所以这可能是一个问题,因为我将自己与我通常处理的语言完全不同。 所以; 我有一张多张(20+)的工作簿(Excel 2010),其中大多数是多页的。 为了在打印所有内容时更容易,我想添加一些特定于工作表的标题,其中包括工作表的名称,页数
2回复

Excel:VBA创建没有重复的工作表

我一直在尝试创建用于创建工作表的宏。 该代码应执行以下操作: 1)使用“模板”工作表中的模板为母版表中的ColumnB创建工作表。 2)“母版”工作表中ColumnB的范围是可变的,但这是我第一次尝试使用excel-vba,而且我不知道如何设置可变范围。 3)根据ColumnB中每
4回复

Excel2010VBA创建日期

如何在excel 2010中使用VBA获取当前工作簿文件创建日期? 我浏览了ThisWorkBook的所有属性,我似乎没有找到那里的东西。
1回复

从UserForm传递到VBA中的Module的变量数组为空/空

我有一个带列表框的用户窗体,供用户选择值。 这些值通过对基本模块的函数调用填充到UserForm_Initialize() ,该函数返回一个数组作为变量。 这没有问题。 如果用户选择某些值并按下按钮,则按钮Click事件将调用基本模块中的另一个函数,以传递用户输入的数组并计算事物。 这