【发布时间】: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