【问题标题】:Microsoft Excel VBA automatically click OK in a UserFormMicrosoft Excel VBA 自动单击用户窗体中的确定
【发布时间】:2014-06-24 20:48:47
【问题描述】:

您好,我正在尝试修改 XmlTools.xla 插件。

我已对其进行了设置,以便用户窗体已显示用户需要预填充的所有内容。我只需要某种方式以编程方式单击“确定”按钮。我尝试在如下所示的代码 sn-p 中使用发送键,但它不起作用。

Public Sub sbShowForm()
Application.DisplayAlerts = False

ActiveSheet.Name = "Sheet555"

ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Select
ActiveCell.Name = "lastCell"

ActiveSheet.Cells(1, 1) = "Is this"

frmCreateXmlList.Show
frmCreateXmlList.btnOK_Click

ActiveSheet.Cells(2, 1) = "called?"

Application.SendKeys ("{Enter}")
Application.SendKeys ("{Return}")

CreateXmlFiles.sbUserFormOKClicked
Call sbUserFormOKClicked

Application.DisplayAlerts = True

frmCreateXmlList.Hide
End Sub 'sbShowForm

我意识到这个请求有点愚蠢,但我收到了用户请求,他们说填写表格“工作量太大”。我知道 SendKeys 并不总是可靠的,但我只是在寻找让它工作的东西。

【问题讨论】:

  • 我也试过 frmCreateXmlList.btnOK_Click ,但这似乎并没有解决它
  • 您确定正在调用该代码吗?
  • 我使用调试器单步执行,看起来它正在被调用,但它似乎没有做任何事情。我更新了我的代码(如上所示)。
  • hm 很奇怪,但请尝试不带 () 的 {Enter}。并确保表单处于活动状态并且按钮具有焦点
  • 我刚刚想通了。我的发送键正在工作,但它们将击键发送到活动工作表,而不是用户表单。我更新了 UserForm -> Properties -> ShowModal -> False 当此属性设置为 true 时,它​​将不起作用。我还不能回答我自己的问题,因为我没有足够的声望点。

标签: excel vba userform commandbutton


【解决方案1】:

我刚刚想通了。我的发送键正在工作,但它们将击键发送到活动工作表,而不是用户表单。我更新了 UserForm -> Properties -> ShowModal -> False

当此属性设置为 true 时,它​​将不起作用。我也决定使用

Call sbUserFormOKClicked

因为它应该比发送密钥更可靠。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多