提问人:Bender 提问时间:5/31/2023 最后编辑:Ken WhiteBender 更新时间:5/31/2023 访问量:51
如何找出当前的文档组件和代码模块部件
how do i find out the current document component and code module parts
问:
我正在尝试运行以下代码
Private Sub Document_Open()
StringExecute ("MsgBox ""hello""")
End Sub
Sub StringExecute(s As String)
Dim vbComp As Object
Set vbComp = ThisDocument.VBProject.VBComponents.Add(1)
vbComp.CodeModule.AddFromString "Sub foo()" & vbCrLf & s & vbCrLf & "End Sub"
Application.Run vbComp.Name & ".foo"
ThisWorkbook.VBProject.VBComponents.Remove vbComp
End Sub
问题是我无法弄清楚用什么来替换这个文档。我将要执行的代码用于将变量字符串转换为Access VBA中的命令。最终,我将在 Access 中打开 Microsoft Word,并将命令中的数据插入到 Word 书签中。
我得到的最常见的错误,或者至少是我能让它工作的最接近的错误,说该属性不受支持。最终,通过将此文档与我打算在我的情况下使用的 Word 文档的名称 (oapp) 交换,我已经非常接近了。然后我不得不在 vbproject 之后添加 .vbe。
这至少允许我通过设置的 vbcomp 行和 debug.print 建议 vbcomp 已将模块 1 设置为适当的模块。但是,当我点击application.run行时,它不会找到.foo子。当我手动搜索时,我找不到从字符串行添加的任何内容(我确实删除了最后一行,但没有任何区别)。
以下代码是我更改 vbcomp 以尝试到达某个地方的代码。
Set vbComp = Oapp.VBE.VBProjects.VBE.ActiveVBProject.VBComponents.Add(1)
Debug.Print "the name of vbcomp is " & vbComp.Name
问题似乎在于(除其他外,可能)代码试图用 word 重写模块,而不是在 access 中重写它。有谁知道如何在访问中引用相关的组件?
答: 暂无答案
评论
Oapp