Word VBA如何无需显示UserForm即可读取其中文本框控件的值
正确实现方案
Word VBA 中的 UserForm 属于 VBA 项目的独立窗体对象,不属于 ActiveDocument 的子对象集合,因此你此前所有通过 ActiveDocument 调用的写法都无法命中目标对象,才会触发438等报错。
你代码中已经写了Load Empfängerdaten,这一步已经将目标窗体加载到内存且默认不会弹出显示,此时直接通过窗体名称引用对应控件即可读取属性值,无需绑定文档对象。
修正后代码示例
Sub Fertigstellen() ' 将窗体加载到内存,无弹窗、默认隐藏 Load Empfängerdaten Dim X As String ' 直接通过「窗体名.控件名.属性」的格式读取值 X = Empfängerdaten.QL4.Text If X Like "CH" Then ' 校验数据存在性 Stop End If ' 若后续不再需要访问该窗体的控件值,可手动卸载释放内存 ' Unload Empfängerdaten QR_Dialog.Show End Sub
补充说明
如果需要读取多个 UserForm 的控件值,对每个目标窗体都先执行Load 窗体名操作加载到内存,再用窗体名.控件名.属性的格式读取即可。如果后续需要修改控件存储的值,也可以用同样的格式直接赋值,无需显示窗体。
内容的提问来源于stack exchange,提问作者Bughater
相关产品推荐
相关产品推荐

