2016-04-21 145 views
2

我試圖讓我的Excel宏在已經打開的Word文檔的光標位置插入一些文本。如何在Word中的光標位置插入文本?

這是我寫的。我知道ActiveDocument.Range具有開始和結束參數,但我似乎無法將它們的「當前選擇」指定爲值。幫幫我?謝謝?

Sub InsertText() 

Dim rngTemp As Word.Range 

Set rngTemp = ActiveDocument.Range 

With rngTemp 

    .InsertAfter "This is my sample text" 
    .Font.Name = "Tahoma" 
    .Font.Size = 11 
    .InsertParagraphAfter 
End With 

End Sub 

回答

1

當前選擇是Selection

如您所述,如果您需要在自動執行Word的Excel宏中使用此功能,則需要使用您聲明並實例化的Word.Application對象來限定它。它看起來像這樣:

Dim wdApp as Word.Application 
Set wdApp = GetObject(, "Word.Application") 
wdApp.Selection.Text = "text at the current selection" 
'Get a Range for the current selection 
Dim rng as Word.Range 
Set rng = wdApp.Selection.Range 
rng.Text = "this text will replace the text in the current selection" 
rng.Collapse wdCollapseEnd 
rng.Text = " and this text will come after the current selection" 
+0

謝謝辛迪!有用!我只修改了一個小工具,它的作用就是設置wdApp = GetObject(,「Word.Application」) 一行中的逗號和空格。 子Inserttext() 昏暗wdApp作爲Word.Application 集wdApp = GetObject的( 「Word.Application」) wdApp.Selection.Text = 「文本在當前選擇」 「獲取當前選擇一個範圍 昏暗的RNG作爲Word.Range 設置RNG = wdApp.Selection.Range rng.Text =「這個文本將取代當前所選文本」 rng.Collapse wdCollapseEnd rng.Text =「這個文本會後當前選擇「 End Sub 再次感謝! –

+0

@VincentM很高興幫助:-)感謝您指出錯誤:我在我的平板電腦上從內存中打字,並且不記得可選文件路徑(用於拾取特定文件)是在之前還是之後應用程序標識... 我在我的「答覆」中更正了它。 –

相關問題