2015-06-23 59 views
3

在我的单词“工作表”中,我有一个CommandButton,其中单击时触发代码的某个部分,基本上是打开第二个单词文档并插入当前单词的一些信息(Document1)转换成第二个(Document2TextBox访问另一个word文档文本框

我有字符串变量包含文本在一个单词文档(例如文档1)。我正在打开第二份文件(例如Document2)。然后,我需要从文档2到达特定的文本框,并向其中插入我已有的字符串字符串之一的值。

这就是说,我不能访问第二个文档(Document2),因为我总是得到“4160错误”,导致文件名不正确。

因此,我怎么可以访问我的第二份文件(文档2文本框并插入到它的具体值我已经有了?

我的代码如下(简化为一个变量,因为这将是相同的所有其他):


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

关于你的问题的好工作。我有一个待完成的编辑来改进您的格式 - 我建议您将来这样做,因为它可以帮助人们阅读您的问题,并希望更快地为您解答问题。我还添加了更多相关标签 - 再次,目标是帮助您的问题被正确的人看到。 –

+0

在您提供的代码中,您没有为变量'txtBoxNameDoc2'分配任何值。这似乎是一个错误。另外,您确定文档名称是“Document2.docx”吗?如果这不正确,它也将是一个错误。 –

+0

首先,谢谢@DavidSchwartz你的编辑没有我的格式!我会考虑一下在未来几年我可能会问的其他问题。 – Marks

回答

2

我可以在你上面提供的编码错误的一些猜测,但如果这条线工作不返回错误:

Set WordDoc = WordApp.Documents.Open(strFile) 
WordApp.Visible = True 

,那么你应该能够做到:

WordDoc.Bookmarks(txtBoxNameDoc2).Range.Text = name 

这是因为您已打开“Document2.docx”此外,您已将其专门分配给WordDoc对象变量。因为你已经完成了这个工作,所以你不需要像在原始代码中那样明确地从Documents集合中引用它。

注意:这假定txtBoxNameDoc2是标识WordDoc文档中书签的有效字符串。如果它应该被解释为一个字符串(即,它是实际名称书签的,那么你需要用引号来限定它,如:

WordDoc.Bookmarks("txtBoxNameDoc2").Range.Text = name 

如果这种情况持续下去,以产生一个错误,然后命名的书签不存在。

可以将书签分配给一个TextBox对象。书签不会“自动”存在的文件中,所以首先你要保证这样的书签存在。您可以查看这些内容并通过功能区分配它们(如果它们不存在))。除非你创建它们

书签不存在。你认为对象的名称也可以指一个书签,而它可以,首先你需要创建书签,并为它分配的要参考它的名字。

+0

我以前试过这个'WordDoc.Bookmarks(“txtBoxNameDoc2”)。Range.Text = ActiveDocument.Bookmarks(“txtBoxName”)。Range.Text'不过那是以前,我意识到,我只能做名= txtBoxName.Text然后使用该变量。这就是说,它不起作用。我现在就试试看,不过这可能是我以前的代码错了,现在应该可以使用这种方法了。 – Marks

+0

我试了一下,但它现在给我的5941错误,这是所需的集合的成员不存在。 – Marks

+0

然后没有这样的书签。阅读我的NB声明... –

相关问题