如何在VBA中获取所选文本

时间:2010-01-15 21:20:50

标签: vba ms-word

我有一个更改所选文本的宏,我已将其分配给一个按钮。

当我直接从visual basic运行它时,它工作得很好,但是当我单击按钮时,按钮获得焦点并且我的文本不再被选中,因此宏将所选元素更改为(按钮)。

如何通过单击按钮选择文本并运行宏,并且仍然选择了文本?

3 个答案:

答案 0 :(得分:4)

执行此操作的方法是将CommandButton的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 :(得分:3)

按钮是否嵌入文档中?您可能需要将其放在加载到Word窗口顶部或菜单/工具栏中的表单上,以便单击它不会影响文档本身的选择。

修改
我想你可以使用Application.Selection.Previous来获得你需要的东西。您可以使用此选项在单击事件后恢复选择,或者对文档的该部分执行操作,或两者都执行。

我认为这在以前版本的Word中可用,但仅在2007年确认其存在。

答案 2 :(得分:1)

您需要在按钮首选项中将TakeFocusOnClick更改为“False”。