2010-01-15 39 views
1

我有一個宏可以改變所選擇的文本,並將它分配給一個按鈕。如何獲得VBA中的選定文本

它完美,當我直接從Visual Basic中運行它,但是當我點擊該按鈕,該按鈕獲得焦點和我的文字不再被選中,因此宏觀變化選擇的元素(按鈕)。

如何通過單擊按鈕選擇文本並運行宏,並仍然選擇了文本?

回答

3

該按鈕是否嵌入在文檔中?您可能需要將其放在Word窗口頂部或菜單/工具欄上的窗體上,以便點擊它不會影響文檔本身的選擇。

編輯:
我認爲你可以使用Application.Selection.Previous得到你所需要的。您可以使用它在單擊事件之後恢復選擇,或者對文檔的該部分或兩者進行操作。

我認爲這是在Word的早期版本,但只確認了其在2007年

+0

是的,按鈕被嵌入到文檔中。當我添加按鈕頂部菜單它的作品,但我不得不使用嵌入式按鈕(講師的要求) – Ethylparaben 2010-01-16 08:56:56

4

存在這樣做的方法是在命令按鈕的設置TakeFocusOnClick屬性設置爲False。這裏是我使用的代碼。

Private Sub CommandButton1_Click() 
    Dim Sel As Selection 
    Set Sel = Application.Selection 
    If Sel.Type <> wdSelectionIP Then 
     MsgBox Sel.Text 
    End If 
End Sub 
1

您需要將按鈕首選項中的TakeFocusOnClick更改爲「False」。