如何更新另一个用户表单上的标签标题?

我正在使用VBA来Show一个用户userform 。 在这个窗体上,我有button来打开另一个用户窗体( AddAmountForm )。 当我点击button来打开AddAmountForm我也想更新AddAmountForm上标签的标题。

这是我在第一个用户表单上试过的:

 Private Sub AssocDuesAddbtn_Click() AddAmountForm.Show With AddAmountForm .AddName.Caption = "Assoc. Dues" .Repaint End With End Sub 

但是,这不会更新标题,它仍然是一样的。

会有几个button会打开第二个用户窗体,每个button都需要根据每个button应该更新的内容更新标签。

我究竟做错了什么?

 AddAmountForm.Show 

这会以模态方式显示 AddAmountForm表单的默认实例 。 这意味着下一条指令将只表单closures执行。

您可能的意思是展示之前更改其标签:

 With AddAmountForm .AddName.Caption = "Assoc. Dues" .Show End With 

也就是说,使用表单的默认实例会在某一天或者另一天的后端咬你。 表单是对象,对待它们是这样的:

 With New AddAmountForm .AddName.Caption = "Assoc. Dues" .Show End With 

如果标题是一个编译时常量(string文字是一个编译时常量expression式),那么没有必要在运行时分配它 – 只需在窗体devise器的属性工具窗口(F4)中设置标签的标题即可。