簡體   English   中英

如何自動單擊運行VBA程序的打開文件按鈕

[英]How to automatically click on open file button running VBA procedure

我正在尋找一種方法來單擊按鈕“打開文件”。

我寫了一個與SAP模塊連接的excel-VBA宏。 它應該做的是在SAP中添加文件作為附件。 結果我得到一個彈出窗口,只是一個標准的窗口打開文件窗口以獲取文件名和打開文件按鈕。

我的問題是如何自動插入一個文件名(始終已知)並單擊該打開的文件按鈕?

我在excel-VBA中嘗試了sendkey,但是事實證明,一旦打開文件窗口彈出,整個Sub例程就會停止。

我知道我需要Winapi來做到這一點。

您可能需要執行DoEvents來允許密鑰由SAP處理。

引用VBA幫助:

DoEvents功能

產生執行,以便操作系統可以處理其他事件。

句法

 DoEvents( ) 

備注

DoEvents函數返回一個整數,該整數表示獨立版本的Visual Basic(例如Visual Basic,Professional Edition)中打開的窗體的數量。 DoEvents在所有其他應用程序中返回零。

DoEvents將控制權傳遞給操作系統。 在操作系統完成處理其隊列中的事件並且已發送SendKeys隊列中的所有鍵之后,將返回控件。

DoEvents對於簡單的事情最為有用,例如允許用戶在進程啟動后取消進程,例如搜索文件。 對於長時間運行的進程,使用計時器或將任務委派給ActiveX EXE組件可以更好地完成處理器的生產。在后一種情況下,任務可以完全獨立於您的應用程序繼續,並且操作系統采用多任務處理和時間切片。

注意事項每當您在事件過程中臨時讓處理器退出時,請確保在第一次調用返回之前,不會從代碼的其他部分再次執行該過程; 這可能會導致不可預測的結果。 此外,如果在產生控制權的過程中其他應用程序可能以不可預見的方式與您的過程進行交互,請不要使用DoEvents。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM