在我的单词" sheet"中,我有一个 CommandButton ,当点击它时会触发一段代码,这部分代码主要是关于打开第二个word文档并插入一些从当前信息( Document1 )到第二个信息( Document2 ) TextBox 。
我的字符串变量包含一个word文档中的文本(e.i。 Document1 )。我正在打开第二份文件(e.i。 Document2 )。然后,我需要从 Document2 到达特定的 TextBox ,并在其中插入我已经拥有的 String 变量之一的值。 / p>
话虽这么说,我无法访问第二个文档( Document2 ),因为我总是得到" 4160错误"文件名不正确的结果。
因此,如何访问我的第二个文档( Document2 ) TextBox 并在其中插入我已有的特定值?
我的代码如下(简化为一个变量,因为它与其他变量相同):
Private Sub btn1_Click()
Dim strFile As String
Dim WordApp As New Word.Application
Dim WordDoc As Word.Document
Dim name As String
strFile = "C:\Users\WhateverUser\Desktop\WhateverFolder\Document2.docx"
name= txtBoxName.Text
'This comes from the first document (Document1) which is correct.
' Opening another Word document (Document2)
Set WordDoc = WordApp.Documents.Open(strFile)
WordApp.Visible = True
'Here is the problem
'Trying to access the Document2 TextBox (txtBoxNameDoc2) with various ways but I always get the Incorrect File Name Error
'First I tried
Documents("Document2.docx").Bookmarks("txtBoxNameDoc2").Range.Text = name
'Then I tried
Documents("Document2.docx").txtBoxNameDoc2.Text = name
'And after those, I went looking on internet and tried what I could find but none did work.
End Sub
答案 0 :(得分:2)
我可以推测上面提供的编码中的一些错误,但如果此行无效则返回错误:
Set WordDoc = WordApp.Documents.Open(strFile)
WordApp.Visible = True
你应该能做到:
WordDoc.Bookmarks(txtBoxNameDoc2).Range.Text = name
这是因为您已经打开了" Document2.docx" 和此外,您已将其专门分配给WordDoc
对象变量。因为您已完成此操作,所以您无需像在原始代码中那样从Documents
集合中明确引用它。
NB:这假设txtBoxNameDoc2
是标识WordDoc
文档中书签的有效字符串。如果它应被解释为文字字符串(即,它是书签的实际名称,那么您需要使用引号来限定它,例如:
WordDoc.Bookmarks("txtBoxNameDoc2").Range.Text = name
如果这继续引发错误,则指定的书签不存在。
可以为TextBox对象分配书签。书签不会自动"存在于文档中,因此首先必须确保存在这样的书签。您可以查看这些内容并通过功能区分配它们(如果它们不存在)。
书签除非您创建,否则不存在。您已经假设对象的名称也可以引用书签,而可以,首先您需要创建书签并分配它您想要引用它的名称。