按下按钮时,我想要工作两个宏。我插入了按钮sub中所需的代码,并使其不是私有的。然后我打开宏对话框并运行宏,它按预期工作。但是,当我尝试按下按钮时,会出现一个错误,表示"所请求的集合成员不存在。"
在这种情况下,代码不应该真正重要,因为它在我手动运行时工作正常但是在这里:
Sub CommandButton4_Click()
Selection.Tables(1).Select
Selection.Copy
Selection.PasteAndFormat (wdPasteDefault)
ActiveWindow.ActivePane.VerticalPercentScrolled = 24
'Some other Code here
End Sub
当我执行调试时,它表示问题出在这一行:Selection.Tables(1).Select
然后在我的另一个例子中,我有这个代码:
Sub CommandButton3_Click()
Selection.SelectRow
Selection.Copy
Selection.InsertRowsBelow 1
Selection.Paste
End Sub
代码错误似乎在这一行:
Selection.SelectRow
它说
SelectRow方法或属性不可用,因为部分或全部对象未引用表。
我使用Macro Recorder
获取了代码。
如果您对发生这种情况的原因有任何想法,我将非常感谢您的帮助。
答案 0 :(得分:0)
此代码
Selection.Tables(1)
仅在Selection(光标)位于表格内时才有效。
单击按钮时,按钮将获得焦点,并在此处移动“选择”。如果按钮不在表格内,则代码将失败。
如果你在桌子内移动按钮,它确实有效,但这可能看起来很傻。
答案 1 :(得分:0)
替换
Selection.SelectRow
与
'r being which ever row you want to Select
Selection.Table(1).Row(r).Select
答案 2 :(得分:0)
您可以将宏绑定到组合键。这不会改变你设定的任何焦点,因此应该解决你的问题。
如何做到这一点在不同版本的Word中有所不同,但最近的版本在这里解释:
http://wordribbon.tips.net/T008058_Assigning_a_Macro_to_a_Shortcut_Key.html