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

Excel 如何在VBA中引用动态创建的控件?,excel,vba,dynamic,reference,controls,Excel,Vba,Dynamic,Reference,Controls,几个月来,我一直在StackOverflow上找到我需要的答案(谢谢大家!),但到目前为止,我的搜索词没有找到我这次需要的结果。。。因此,我在这里的第一篇文章 我有一个Excel文件,其中包括两个用户表单: 第一个用于输入某些发票数据,然后以可以上传到我们专有会计系统的格式导出该数据 第二个用于根据这些发票过账付款数据,然后,类似地,以可以上传到我们的会计系统的格式导出这些数据 第二个表单必须在Userform_Initialize中动态创建,因为所需的付款数量(以及由此创建的文本框和标签控

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

我有一个Excel文件,其中包括两个用户表单:

  • 第一个用于输入某些发票数据,然后以可以上传到我们专有会计系统的格式导出该数据
  • 第二个用于根据这些发票过账付款数据,然后,类似地,以可以上传到我们的会计系统的格式导出这些数据
第二个表单必须在Userform_Initialize中动态创建,因为所需的付款数量(以及由此创建的文本框和标签控件的数量)取决于发票的大小。我已经完成了创建第二个表单的代码,它工作得很好,但是我想添加一些功能,当用户更改这些动态创建的控件时会触发这些功能

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


任何提示都将不胜感激

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

看这里:和