介绍。:在我的公司,我们在 Excel 中安装了一个安全插件,阻止我们在不输入所需参数的情况下保存新的 Excel 工作簿。
挑战:使用SendKeys
将所需的 key 发送到此 Excel 加载项。
问题:当弹出加载项屏幕时(如下面的屏幕截图所示),代码似乎没有继续到这一行:SendKeys "“,正确
。
我的代码(相关部分)
编辑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/