我正在寻找一种方法来点击“打开文件”按钮。
我写了一个与SAP模块连接的excel-VBA宏。它应该做的是在SAP中添加文件作为附件。结果我得到弹出窗口,只是一个标准的Windows打开文件窗口,以获取文件名和打开文件按钮。
我的问题是如何自动插入文件名(总是已知)并单击该打开的文件按钮?
我在excel-VBA中尝试了sendkeys,但事实证明,一旦打开文件窗口弹出,整个Sub例程就会停止。
我知道我需要Winapi这样做。
答案 0 :(得分:0)
您可能需要执行DoEvents
以允许SAP处理密钥。
从VBA帮助中引用:
DoEvents功能
产生执行,以便操作系统可以处理其他操作 事件
语法的
DoEvents( )
说明
DoEvents函数返回一个表示数字的Integer 在Visual Basic的独立版本中打开表单,例如Visual 基础版,专业版。 DoEvents在所有其他中返回零 应用
DoEvents将控制权传递给操作系统。控制权归还 操作系统完成处理后的事件 队列和SendKeys队列中的所有密钥都已发送。
DoEvents对于允许用户这样的简单事情最有用 在启动后取消进程,例如搜索a 文件。对于长时间运行的进程,产生处理器会更好 通过使用Timer或将任务委派给ActiveX EXE来完成 组件..在后一种情况下,任务可以完全继续 独立于您的应用程序,操作系统需要大小写 多任务和时间切片。
小心任何时候在事件中暂时产生处理器 程序,确保程序不再从a执行 第一次调用返回之前代码的不同部分;这可以 导致不可预测的结果。此外,如果不是其他,请不要使用DoEvents 应用程序可能会无法预料地与您的过程进行交互 在你控制之间的方式。