【问题标题】:Conditionally Presetting Checkboxes on VBA Userform有条件地预设 VBA 用户窗体上的复选框
【发布时间】:2018-08-29 18:02:55
【问题描述】:
我需要一个用户表单来调用另一个用户表单,该用户表单填充从工作簿中大约 10 个单元格读取的文本框和复选框。基本上它是回忆用户可以编辑的产品属性,有些是基于文本的,有些是是/否(真/假)。如何连接这些用户窗体属性?
【问题讨论】:
标签:
vba
checkbox
userform
【解决方案1】:
您可以像使用类一样使用 Userform,并使用 New UserFormName 声明和实例化它们。但是,它们也是一个在工作簿中始终有一个实例的类,您可以将其视为已经使用 New 声明了它。如果你想提取其中已经存在的实时信息,你会想要使用那个。
例如,如果用户表单名为“Bacon”,并且包含一些执行您想要的操作的方法(Solve_Everything_Click),以及一些包含您需要在顶部声明的信息的内部数据(Public MyName As String, TheAnswer As Boolean),您可以从另一个子/函数中调用它,在用户表单中或在用户表单中,只要代码在同一个工作簿中,或者使用用户表单引用该书。
您可以在同一个工作簿中使用它的名称访问它的全局实例,并使用 . 访问其中的内容,请注意按 . 时出现的上下文帮助,这将告诉您您可能会从中提取其他方法和变量。
Sub PokeAtIt()
Bacon.TheAnswer = True
MsgBox Bacon.MyName & " Has the answer: " & Bacon.TheAnswer
Bacon.Solve_Everything
End Sub