将焦点移至VBA

时间:2016-08-04 14:02:26

标签: excel vba excel-vba

我有一个带有表单控制按钮的speadsheet。在一个按钮调用的宏的末尾,我想将焦点设置为另一个按钮,这样如果我看到第一个按钮完成了这个工作,我就可以按Enter键。

我搜索了Q& A并得到了这个

ActiveSheet.Shapes("CommandButton1").Select

这不起作用。它选择形状但Enter不运行它。此外,CommandButton的方法不起作用。

ActiveSheet.Shapes("CommandButton1").SetFocus

返回“不支持的方法”错误。

我得到了另一个答案:

Me.CommandButton1.SetFocus

但它不起作用。我得到“需要对象”错误。这让我相信Excel VBA中不存在CommandButton#对象,或者它引用了一个表单。但我的按钮直接放在电子表格上。 试图

ActiveSheet.CommandButton1.SetFocus
ActiveSheet.Buttons("Button 1").SetFocus

无效。

我找到了一个类似这样的旧示例代码:

CommandButton2.Caption = "CONTINUE"
CommandButton1.Enabled = False
CommandButton3.Enabled = False

这适用于该示例,但在该示例中,按钮的行为有所不同。我怀疑它们是ActiveX或其他东西而不是表单控制按钮。在该示例中,右键单击它们不会显示上下文菜单。

我试过

ActiveSheet.Buttons("Button 1").ControlFormat

但不知道接下来要用什么。 SetFocus不起作用。

这应该是直截了当的,所以我很惊讶没有一个答案对我有用。我没有同事与VBA打交道。它看起来非常具体。所以,请提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用名为" CommandButton1"的ActiveX控件按钮,您可以调用

Me.CommandButton1.Activate

来自同一工作表。

答案 1 :(得分:0)

在名为“ CommandButton1”的表单控件按钮上,您可以调用

UserForm1.CommandButton1.SetFocus

这将确保焦点在CommandButton1上。