Tag: sendkeys

发送键的语法

我正在尝试使用Excel VBA脚本在文本框中input一个值。 Iam使用下面的代码相同 Dim sel3 as WebElement sel3 = driver.findElementByName("*amtfld" & l).SendKeys "100" 但在编译过程中给了我SYNTAX ERROR

我可以使用Excel 2007中的VBA命令集中到另一个窗口吗?

我想从Excel 2007中运行一个VBA脚本,可以将焦点切换到另一个活动窗口(ALT + TAB)将命令发送到该窗口,然后将焦点返回到Excel并继续在VBA中执行命令。 例如: 复制单元格A1的内容,将焦点集中到活动的Internet Explorer窗口,发送TAB键命令,粘贴从A1复制的数据,然后重新聚焦到Excel以继续执行VBA脚本。 这可能吗? 我无法在网上find正确的信息,并且觉得可以使用Excel VBA来做到这一点。

Excel VBA:为什么API比SendKeys更好?

我目前正在Excel中的一个VBA项目,我需要解锁一个VBProject,并locking另一个VBProject。 到目前为止,我一直在用SendKeys来做这件事,但是我一直在读,它不是一个好的方法,而且API更好? (例如在这个线程中: 从VB代码解除VBProject的保护 ) 然而,我无法find任何详细的信息,为什么在我的研究。 有人能告诉我为什么SendKeys是不好的? 有什么事情可能出错? (请注意我的SendKeys序列最多只有1.5秒。)另外,为什么API更好? 谢谢! 🙂

EXCEL 2007 SENDKEYS检测到不明确的名称

我想通过以下代码通过vba隐藏function区中的function区: If Application.CommandBars("Ribbon").Height > 59 Then Application.SendKeys ("^{F1}"), True 但Office帮助窗口打开并显示“检测到不明确名称”之类的内容。 艾米的想法是什么错?

VSTO取消工作簿通过发送按键打开事件

在Microsoft Excel中打开一个大文件(可以说是一个大于50MB的csv文件)时,会在屏幕右下angular打开一个小进度条,并显示“按ESC取消”。 如果在打开文件时按ESC键,则会取消操作。 如果文件是200MB,Excel打开文件的时间可以是20秒或更长,所以有能力取消。 在我的VSTO插件,我想有能力取消大型工作簿的文件加载操作。 因为我正在做文件的后期处理,我想有我自己的对话框,显示文件正在打开/正在处理(打开时滚动进度条,和正常进度条后处理)进度。 在这个进度表上,我想要一个取消button,可以停止当前的操作。 为了在Excel打开文件时显示自定义选取框进度条窗体,必须在新线程上创build窗体,因为我相信Excel是单线程的,所以如果在主线程上执行,窗体将冻结。 我的解决scheme是让这个表单在一个单独的线程上执行,然后有一个Cancelbutton,当按下Cancelbutton时,它使用SendKeys(或类似的)来发送ESC键击。 但是,这个解决scheme似乎并不奏效。 使用发送按键的各种方法,或者什么都不会发生,或者我得到这个exception“消息filter指示应用程序正忙(从HRESULTexception:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))” 我尝试过发送按键的各种方法是: //1 Globals.ThisAddIn.Application.SendKeys("{ESC}"); //also tried SendKeys.Send("{ESC}"); //2 Globals.ThisAddIn.Application.SendKeys("{ESC}", true); Globals.ThisAddIn.Application.Wait(DateTime.Now + new TimeSpan(0, 0, 1)); //3 Nuget package to which uses SendInput from https://inputsimulator.codeplex.com/ InputSimulator inputSim = new InputSimulator(); inputSim.Keyboard.KeyPress(VirtualKeyCode.ESCAPE); //4 sending keystorkes via Window hooking http://stackoverflow.com/questions/10407769/directly-sending-keystrokes-to-another-process-via-hooking 我也试过所有这些使用BeginInvoke的方法,没有任何成功。 有没有人有任何build议,我怎样才能得到一个取消button成功注册一个ESC击键与Excel? 我猜测解决scheme有不同的处理线程。

无处不在:应用程序定义的错误或对象定义的错误

我写了一个小的macros,将事务input到我们的ERP系统中,当确定电子表格中定义的第二个位置是否大于零时,事情似乎会被抹黑。 这是我的代码: Option Explicit Sub DblChk() If (MsgBox("Are you sure you are ready to append scrap data to QAD? This cannot be reversed.", vbOKCancel)) = 1 Then Call Scrap Else: Exit Sub End If End Sub Sub Scrap() On Error GoTo ErrorHelper Sheets("Roundup").Select Range("I2").Select Call Shell("C:\Program Files\QAD\QAD Enterprise Applications 2.9.6\QAD.Applications.exe", vbNormalFocus) 'Sign in to QAD […]

VBA在下载xls文件时省略从Internet Explorerpopup保存

我search了很多网站来获得答案,但无法成功。 我想从我的公司网站下载xls文件,并通过VBA我能够login,然后更改几个参数,最后我点击导出button。 点击导出button后,xls文件将被下载,但后来我得到了一个关于保存/另存为/打开从Internet Explorerpopup。 所以最后我卡在这里,我用发送键来下载这个,但有没有其他的选项,将保存xls文件在我定义的path和预先定义的xls名称。 还有一个问题,点击导出button后xls文件名可以是任何东西。 非常感谢您的帮助。

如何在VBA中打入对话框?

我有一个Excelmacros创build一个.txt文件,打开另存为对话框,并填写文件名称。 但是,我不知道如何击中另存为对话框上的inputbutton。 我已经尝试使用SendKey的input,但它似乎不工作。 这是我现在macros观的底部。 myPath = some path that I have file_loc = Application.GetSaveAsFilename(myPath, fileFilter:="Text Files (*.txt), *.txt") wb.SaveAs Filename:=file_loc, FileFormat:=xlText wb.Close 任何帮助将非常感激!

运行没有Sendkeys的VBA代码

我想使用VBA将PDF读入Excel。 我已经能够使用sendkeys,但是这不是一个可靠的解决scheme,因为sendkeys通常是脆弱的。 有没有其他方法或任何直接的方法(在VBA或Python)? 使用sendkeys的代码: Sub Get_Pdf() Dim XLName As String, PDFPath As String, READERPath As String Dim OpenPDF, sh As Worksheet XLName = ThisWorkbook.Name Set sh = ThisWorkbook.Sheets(1) PDFPath = Application.GetOpenFilename(filefilter:="PDF file (*.pdf), *.pdf") If UCase(PDFPath) = "FALSE" Then Exit Sub '~~> Below path differs depending Adobe version and installation path READERPath = "C:\Program Files\Adobe\Reader […]

如何将多个variables传递给Excelmacros中的VBS发送键?

所以我目前正在研究一个macros,它可以检测Outlook收到的电子邮件,获取发送信息并复制电子邮件内容。 从这里我有一个Excel电子表格设置来检查用户,如果它发现用户列出我有一个sendkeys脚本来login我们的帮助台系统的工作。 我遇到的问题是传递多个variables到我的sendkeys脚本。 下面是我从Excelmacros中传递过来的信息: strParam1 = AssystID strParam2 = Sheets("Ext Database").Range("G3").Value strVBSPath = "C:\Scripts\testsofar.vbs" Shell ("wscript.exe " & strVBSPath & " " & strParam1 & strParam2) strParam1是数据库中的用户名(例如KIERANL),而strParam2是Itemtypes(例如Internal),我将其logging下来。 我遇到的问题是从SendKeys脚本获取正确的输出。 目前我正在使用的行: WshShell.SendKeys Wscript.Arguments(0) ,我相信应该通过strParam1发送,但是当我通过多个值传递它结合他们,如上面的例子将发送: KIERANLINTERNAL所有在一行。 我的问题是我究竟做错了什么? 我已经看了这个页面: https : //technet.microsoft.com/en-us/library/ee692833.aspx ,我不能看到我的方法确切是什么问题。