2015-06-23 61 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聲明... –

相關問題