2014-03-25 68 views
0

^h EY鄉親設置書籤,查找MS Word文檔中特定的字符串,並在該位置

我需要找到通過Excel的VBA MS Word文檔中的特定字符串(格式爲標題1),然後設置一個在該位置的書籤。後一部分不應該是一個問題,只要我有搜索字符串的範圍。

但是,我似乎無法弄清楚如何使用Excel VBA在Word中搜索字符串。

我嘗試以下(縮短):

Option Explicit 

Sub exportWord(button As IRibbonControl) 
Application.ScreenUpdating = False 

Dim wrdDoc As Word.document 
Dim wrdApp As Word.Application 
Dim wrdLoc As String 
wrdLoc = ThisWorkbook.Worksheets("Konfiguration").Range("changelogPath") 

Set wrdApp = New Word.Application 
wrdApp.Visible = True 

Set wrdDoc = wrdApp.Documents.Open(wrdLoc) 

Dim wrdRange As Word.Range 
Dim searchString As String 

Set wrdRange = wrdDoc.Range 
searchString = "Test" 

With wrdRange.Find 
    .Text = searchString 
    .Replacement.Text = "Replacement Test" 
    .wrap = wdFindContinue 
    .ClearFormatting 
    .Replacement.ClearFormatting 
    .Replacement.Highlight = False 
    .Execute Replace:=wdReplaceAll 
End With 
End Sub 

這實際上並不做任何事情,但我只是想檢查發現作品。它並沒有,而Excel只是崩潰沒有任何VBA錯誤或任何東西。剛纔說的東西是「程序沒有響應,應用程序遇到問題,將被關閉」的行不在線,

有沒有人有一個想法,爲什麼Excel只會崩潰沒有任何適當的錯誤信息?或者如何正確地在Word文檔中執行搜索?

最好的問候,

daZza

回答

0

嘗試不同的東西,並解決了這個問題:

For Each rngStory In wrdDoc.StoryRanges 
     With rngStory.Find 
      .Replacement.ClearFormatting 
      .Text = "Änderungen in Test12345" 
      .Replacement.Text = "test" 
      .wrap = wdFindContinue 
      .ExecuteReplace:=wdReplaceAll 
     End With 
    Next 
相關問題