Application.SendKeys键:=" {F2}"从表单按钮子例程

时间:2015-10-18 23:30:34

标签: excel vba

此代码在从宏快捷键调用时工作正常,也就是说,它将预先选定的单元格置于编辑模式。

Sub EditActiveCell()
Selection.Activate
Application.SendKeys Keys:="{F2}"
End Sub

然而,当从一个源自UserForm控件点击的子例程调用时,它不会工作。点击后,预先选择的单元格是“惰性的”#34;并且必须单击才能输入内容。它在VBA中被选中,但在Excel客户端中没有。

另外,如果我使从控件点击调用的例程变得如此简单:

Sub UserFormControlClickAction()
ActiveCell.Select
End Sub

然后控制点击子程序离开选择(单个单元格)"惰性&#34 ;;我必须点击它才能进入它。

任何帮助让F2设置从UserForm控件点击一致地工作?

1 个答案:

答案 0 :(得分:1)

  

首先,确保userform是无模式的。在VBE中将表单的ShowModal属性设置为False。

将以下代码放在userform的代码模块中:

Private Sub UserForm_Click()
    Appactivate Thisworkbook.Name
    EditActiveCell
End Sub

Sub EditActiveCell()
    Selection.Activate
    Application.SendKeys "{F2}", True
End Sub

运行userform,现在当您单击表单时,工作表上的activecell将进入编辑模式。

当然你可以使用控件的事件程序,但我试图让它尽可能简单。