2017-09-16 63 views
0

我創建了一個宏來選擇特定的形狀,並選擇在他裏面的文本,並尋找一個特定的詞,並改變它 但它仍能顯示我的錯誤selection.find 這是我的代碼選擇和形狀詞裏面修改

wrdDoc.Shapes("Groupe 643").Select 
wrdDoc.Shapes("Groupe 643").GroupItems("Text 
Box644").TextFrame.TextRange.Select 
With Selection.Find 
    .Text = "Frame FME" 
    .Replacement.Text = Sheets("Generate").Range("B67") 
.Forward = True 
.ClearFormatting 
.Wrap = wdFindContinue 
.Execute Replace:=wdReplaceAll 

預先感謝您

+0

'Selection.Find'目前正在處理Excel應用程序的'Selection'對象。這是你的意圖嗎?我對Word對象模型不是很熟悉,但應該是'wrdDoc.Selection.Find'? – YowE3K

+0

Nop,我測試了它,但它顯示出我這個錯誤「方法不適用於所有對象」它是excel vba控制word文檔宏當我運行時...它選擇形狀內的文本但與選擇我不能做任何事情...問題與selection.find –

+0

如果它不是'wrdDoc.Selection.Find'那麼'Selection'可能是Word應用程序對象的屬性。 (你沒有發佈足夠的代碼讓我們看看你調用了這個對象,所以你必須確定你自己。)它肯定是**不適合使用** Excel **'Selection'對象如果你正在嘗試使用你在Word中選擇的任何東西。 – YowE3K

回答

1

任何建議,你不應該試圖在所有使用的選擇對象。相反,您可以在形狀中獲得Text,並使用Replace函數對其進行修改。

With ActiveDocument.Shapes(1).TextFrame.TextRange 
    Debug.Print .Text 
    .Text = Replace(.Text, "text", "new text") 
    Debug.Print .Text 
End With 
+0

謝謝,我修改了這個解決方案,它的工作原理 –

+0

謝謝你,我修改了這個解決方案,它的工作 –

+0

我甚至沒有停下來思考,當我提出我對這個問題的評論時,我們可以避免考慮哪個Word通過簡單地擺脫它的使用來託管'Selection'對象!衛生署! – YowE3K