【发布时间】:2021-12-20 15:53:01
【问题描述】:
一个我还没有找到答案的简单问题: 我有一个包含多个用户窗体的 Word 模板文档。
现在在 AutoNew() 上,基于此模板的新文档应首先将隐藏用户表单中的值(当前值存储在模板中的某处)读取到全局变量中以进行进一步处理。 现在 vba 如何从文档中读取用户表单中的值而通常不需要显示用户表单?这些用户表单仅在 [很少] 需要时用于更改值,并且不应自动显示(它们是通过控件打开的,这些控件稍后会在一切正常后消失)。
我的几次试验都导致了错误:
Sub Fertigstellen()
Load Empfängerdaten ' proposition from Raymond Wu
Dim X
' X = ActiveDocument.Forms("Empfängerdaten.QL4").Text ' error 438
' X = ActiveDocument.Forms("Empfängerdaten").QL4.Text ' error 438
' X = ActiveDocument.QL4.Text ' error 438
' X = ActiveDocument.Empfängerdaten.QL4.Text ' error 438
' X = ActiveDocument.Content("QL4").Text ' compiling error
' X = ActiveDocument.Empfängerdaten.QL4.Text ' error 438
' X = ActiveDocument.UserControl("QL4").Text ' compiling error
If X Like "CH" Then ' alle Daten sind vorhanden
Stop
End If
QR_Dialog.Show
结束子
我需要的是使用哪个命令(如果有的话)。
我能找到的所有方法都只能从嵌入文档本身的文本框中读取值。文档的代码找不到用户窗体的文本框。
但是,我需要使用在打印文档时隐藏的用户表单。 用户表单中的值仅用于生成 QR 码,它们不应出现在其他任何地方。请注意,MS Word 似乎没有 Activedocument.Forms![MyField].Value 属性来访问用户表单(与 Access 或 Excel 不同) )。
注意:反过来也没问题:从用户表单中,在打开或关闭全局变量时很容易填充它们。
【问题讨论】:
-
Load UserformName首先你可以在不显示用户表单的情况下访问它吗?注意:是否将值存储在 CustomDocumentProperties 中? -
或Variables收藏..
-
请告诉我们您是如何尝试获取讨论文本中的文本框的。我们是否应该理解这些文本框使用它们的 Text 属性手动放置一些文本?
-
我插入了我的几个非工作试验。使用 CustomDocumentProperties 似乎不切实际;我已经在使用全局变量,但问题是它们在打开文档时是无效的。
-
@Bughater 你试过
Load UserformName并访问它的属性吗?在您使用Show方法之前,它应该是隐藏的,所以如果您只是加载它来检索值,您应该稍后Unload。
标签: vba text ms-word textbox userform