我有一个宏来更改所选文本,我将它分配给一个按钮 .
当我直接从visual basic运行它时,它工作得很好,但当我单击按钮时,按钮获得焦点,我的文本不再被选中,因此宏将所选元素更改为(按钮) .
如何选择文本并通过单击按钮运行宏仍然选择了文本?
执行此操作的方法是将CommandButton的 TakeFocusOnClick 属性设置为 False . 这是我使用的代码 .
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
按钮是否嵌入文档中?您可能需要将其放在加载到Word窗口顶部或菜单/工具栏中的表单上,以便单击它不会影响文档本身的选择 .
Edit:我想你可以用 Application.Selection.Previous 来获得你需要的东西 . 您可以使用此选项在单击事件后恢复选择,或者对文档的该部分执行操作,或两者都执行 .
Application.Selection.Previous
我认为这在以前版本的Word中可用,但仅在2007年确认其存在 .
您需要在按钮首选项中将TakeFocusOnClick更改为“False” .
3 回答
执行此操作的方法是将CommandButton的
TakeFocusOnClick
属性设置为False
. 这是我使用的代码 .按钮是否嵌入文档中?您可能需要将其放在加载到Word窗口顶部或菜单/工具栏中的表单上,以便单击它不会影响文档本身的选择 .
Edit:
我想你可以用
Application.Selection.Previous
来获得你需要的东西 . 您可以使用此选项在单击事件后恢复选择,或者对文档的该部分执行操作,或两者都执行 .我认为这在以前版本的Word中可用,但仅在2007年确认其存在 .
您需要在按钮首选项中将TakeFocusOnClick更改为“False” .