【问题标题】:How can I reference a dynamically created control in VBA?如何在 VBA 中引用动态创建的控件?
【发布时间】:2014-02-24 11:23:54
【问题描述】:

几个月来,我一直在 StackOverflow 上找到我需要的答案(谢谢大家!)但到目前为止,我的搜索词没有找到我这次需要的结果......因此,我在这里的第一篇文章.. .

我有一个包含两个用户窗体的 Excel 文件:

  • 第一个用于输入某些发票数据,然后以可以上传到我们专有会计系统的格式导出该数据。
  • 第二个稍后用于根据这些发票发布付款数据,然后类似地以可以上传到我们会计系统的格式导出该数据。

第二个表单必须在 Userform_Initialize 中动态创建,因为所需的付款次数(以及因此创建的 TextBox 和 Label 控件的数量)取决于发票的大小。我已经完成了创建第二个表单的代码,它运行良好,但我想添加一些功能,当用户更改其中一些动态创建的控件时触发。

我已经使用给定控件的 _Change() 过程以其他形式完成了此操作(例如,当我想在输入美元金额后移动到下一个框时,我使用 _Change() 在其他地方设置焦点值有小数点后两位)。所以我的问题是:如何为表单初始化之前尚不存在的控件建立 _Change() 样式的过程?有没有办法设置一个“全局”_Change() 过程,我可以使用它来循环文本框并根据它们的动态名称使用 if/then/else 语句?

任何提示将不胜感激!

【问题讨论】:

标签: excel vba dynamic reference controls


【解决方案1】:

当我使用动态表单时,我喜欢创建对象数组来存储相关信息,以便我可以通过“名称”快速轻松地引用对象。

【讨论】:

    猜你喜欢
    • 2010-09-23
    • 1970-01-01
    • 2017-07-22
    • 2012-07-12
    • 2021-12-15
    • 2014-01-22
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多