excel - 如何在 VBA 中引用动态创建的控件?

标签 excel vba dynamic reference controls

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

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

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

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

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

    任何提示将非常感谢!

    最佳答案

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

    关于excel - 如何在 VBA 中引用动态创建的控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21485613/

    相关文章:

    excel - 在 Excel 中使用 MID 和 SEARCH 查找第二个空格并复制剩余文本

    javascript - 使用 JavaScript 的动态链接

    java - 动态生成数组

    sql - 'Incdntno.Value'处 undefined variable

    excel - 在 VBA 中查找 Excel 工作表的底部

    c# - 在这种情况下,我应该在运行时编译 C# 吗?

    vba - 打开 XLSM 文件时禁用 Windows Media Player 视频自动播放

    java - 如何将jsp页面的图表导出到excel页面

    vba - 如何保存为 excel 和 vba 项目以备将来使用?

    vba - 如何删除单元格中的非数字字符并将结果连接到 URL?