vba - 尝试发送到 Excel 加载项时 Excel VBA SendKeys 不起作用

标签 vba excel add-in sendkeys

介绍。:在我的公司,我们在 Excel 中安装了一个安全插件,阻止我们在不输入所需参数的情况下保存新的 Excel 工作簿。

挑战:使用SendKeys 将所需的 key 发送到此 Excel 加载项。

问题:当弹出加载项屏幕时(如下面的屏幕截图所示),代码似乎没有继续到这一行:SendKeys "“,正确

Classification Add-In

我的代码(相关部分)

编辑1:下面的代码位于For循环内,我将每个用户的filterred数据库导出到该用户。因此,每次我尝试为其中一个用户保存文件时,我都会遇到该加载项(我需要在 For 循环内“绕过”它)。

' sort the PM's workbook , hide source data    
Application.DisplayAlerts = False
NewWB.Sheets("Combined").Visible = False
NewWB.Sheets("Sheet3").Delete
NewWB.SaveAs "Budget usage - " & Year(Date) & "-" & Month(Date - 30) & " " & PMList(r)

Dim i    As Long

SendKeys " ", True ' <-- it doesn't get to this line when the Excel Add-In pops up
For i = 1 To 3
    SendKeys "+{DOWN}", True
Next i
SendKeys "{ENTER}", True
For i = 1 To 4
    SendKeys "+", True
Next i
SendKeys "{ENTER}", True

最佳答案

Public Sub TryMe()

    Dim s           As String
    Dim sPath       As String
    Dim sTitle      As String: sTitle = "runme.vbs"

    s = "Set WshShell = WScript.CreateObject(""WScript.Shell"")" & vbNewLine & _
        "WScript.Sleep 6000" & vbNewLine & _
        "WshShell.SendKeys ""+{TAB}""" & vbNewLine & _
        "WshShell.SendKeys ""~"""

    CreateObject("Scripting.FileSystemObject").createtextfile(sTitle).write s
    sPath = "wscript " & ThisWorkbook.Path & "\runme.vbs"
    Shell sPath, vbNormalFocus

End Sub

@Pierre - 你的想法是写这样的东西^^?

然后在调用表单之前调用它,然后在稍后的某个地方删除它?最初我认为您不会在任何地方创建该文件,但现在我已经尝试过并且注意到了。它应该可以工作。

关于vba - 尝试发送到 Excel 加载项时 Excel VBA SendKeys 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41720099/

相关文章:

com - MS Word 2007 加载项的 LoadBehavior 设置为 2

Excel VBA,如何根据列中的数据选择行?

vba - Excel oleobject 无法删除

regex - VBA RegEx 查找文件

vba - 生成日期序列

excel - 如何使用批处理脚本和命令行参数打开特定的 excel 文件?

VBA 自定义数据类型 - 默认值

除非源工作簿打开,否则 Excel 链接不起作用?

excel - `Range.Formula` 是 COM 对象吗?

visual-studio - 如何使用 DTE 在加载项项目中编辑 .cs 文件