我爲我公司的插件自動運行測試用例。使用VBA自動單擊消息框
在其中一個測試用例中,當我嘗試關閉工作簿時,在我的本地機器上保存我的工作簿後,我需要點擊'是' - 將編輯的數據保存在我們的數據庫中,'否' - 丟棄編輯或'取消'只需關閉消息框。
我嘗試過使用sendKeys,但那不適合我。
如:對於點擊「否」通過我的VBA代碼,我試圖發送選項卡並輸入鍵是這樣的:
Application.Wait (Now() + TimeValue("00:00:10"))
Call SendKeys("{TAB}", True)
Call SendKeys("{ENTER}", True)
我曾嘗試與不同的時間值仍然沒有得到任何成功。如果有人能幫助我,我會很高興。
提前致謝! :)
UPDATE:截至目前,我一直在做這樣的:
'Some tasks...
ActiveWorkbook.Save
Call Application.Run("workbook.xlsm!Discard")
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True
但是,有沒有什麼辦法讓消息框窗口對象的引用?或者無論如何要堅持工作流程:編輯工作簿 - >保存 - >嘗試關閉 - >選擇丟棄/提交對數據庫的更改?
注意:通過丟棄/提交對數據庫的更改,我的意思是數據更新的服務器。 Excel只是用戶的一個界面。我不希望只保存excel,而是在服務器上調用丟棄/保存更改的操作以及...
你嘗試過'Application.DisplayAlerts = False嗎?請參閱[Application.DisplayAlerts](https://msdn.microsoft.com/en-us/library/office/ff839782.aspx) – Jeeped
如果您決定使用sendkeys執行此操作,則會替換「{ENTER}」用空格鍵命令「」。回車並不總是觸發按鈕點擊。空格鍵呢。但Jeeped的答案是最常用的答案。我從來沒有嘗試賈維斯的方式,但假設它的工作,這也是一個有效的答案。兩者都是一樣的,賈維斯只需要更少的代碼。 – DDuffy
Hi @Jeeped,是的,我試過了,實際上,不是關閉然後從彈出窗口中選擇,而是調用從這些選項觸發的函數,然後關閉我的工作簿。但我很想知道是否有辦法自動點擊/自動選擇彈出窗口。 – Rishi