在运行时通过VBA创建动态按钮

问题描述

我创建了一个用户窗体,该窗体显示了表中的一些值(在文本框中),这些值可以进行编辑,并带有一个命令按钮将这些更改保存回表中。

由于我对各种值使用相同的模板,因此决定在运行时动态创建Userform。但是我根本无法使用命令按钮。我交叉检查了各种示例(在StackOverflow和其他网站上,例如herehere),但我找不到问题。

这是我的(简体)代码。该过程由按钮单击事件本身(setAllowedDatesTo(idx) { this.$set(this.allowedDates,'To' + idx,val => { const today = this.$moment(this.formWorks.workdaySchedules[idx].workdayDateFrom,"YYYY-MM-DD") const maxAllowedDate = today.clone().add(1,"days") const currentDate = this.$moment(val) return !today.isAfter(currentDate) && !currentDate.isAfter(maxAllowedDate) }) } 调用。作为一种解决方法,我创建了一个静态(空)用户窗体CommandButton1,以此为起点在运行时动态创建表单的特定配置。本质上,这意味着仅表单元素是动态创建的。至少现在是这样,但这很好,因为我只需要在任何给定时间显示表单的单个实例即可。最终,我也想在运行时创建表单:

UserForm1

解决方法

您应该创建一个类模块并通过它分配事件: