如何在VBA中引用dynamic创build的控件?

我一直在StackOverflowfind我需要的答案几个月(谢谢大家!),但到目前为止我的search条件没有find我需要这个时间的结果…因此,我的第一个职位在这里…

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

  • 第一个用于input某些发票数据,然后以可以上传到我们专有会计系统的格式导出数据。
  • 第二个是后来用来发布付款数据对这些发票,然后,同样,导出数据的格式,可以上传到我们的会计制度。

第二种forms必须在Userform_Initialize中dynamic创build,因为所需支付的数量(以及创build的TextBox和Label控件的数量)取决于发票的大小。 我已经完成了代码来创build这个第二种forms,它运作良好,但我想添加一些function,当用户更改这些dynamic创build的控件的一些。

我使用给定的控件的_Change()过程在其他forms中完成了这个操作(例如,当我想在input美元金额后移动到下一个框中时,只要值有两个,我就使用_Change()十进制后的数字)。 所以我的问题是:我怎样才能build立_Change()风格的程序,在窗体初始化之前还不存在的控件? 有没有办法设置一个“全局”_Change()过程,我可以用它来循环通过文本框,并使用基于它们的dynamic名称的if / then / else语句?

任何提示将非常感谢!

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