我有一个更改所选文本的宏,我已将其分配给一个按钮。
当我直接从visual basic运行它时,它工作得很好,但是当我单击按钮时,按钮获得焦点并且我的文本不再被选中,因此宏将所选元素更改为(按钮)。
如何通过单击按钮选择文本并运行宏,并且仍然选择了文本?
答案 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”。