【发布时间】:2015-10-09 15:23:07
【问题描述】:
我有一个 autoit 脚本,可以打开一个 excel 工作簿,对其进行修改,另存为 csv 并退出,但我无法让它退出。它在关闭之前锁定在最后一个保存确认屏幕上,我添加了一张它停止工作的窗口的照片。这是我的脚本。
[![#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Create application object
Local $oAppl = _Excel_Open()
If @error Then Exit MsgBox(16, "Excel UDF: _Excel_BookOpen Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; *****************************************************************************
; Open an existing workbook and return its object identifier.
; *****************************************************************************
Local $sWorkbook = @ScriptDir & "\Abacus List.xlsx"
Local $oWorkbook = _Excel_BookOpen($oAppl, $sWorkbook, Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Sleep(2000)
Sleep(2000)
Sleep(2000)
Send("{ENTER}")
Send("{ALTDOWN}{F11}{ALTUP}")
Send("{ALTDOWN}{I}{ALTUP}")
Send("{M}")
Sleep(2000)
Send("Sub sbVBS_To_delete_firstFewRows_in_Excel() {ENTER} Rows(1).EntireRow.Delete {ENTER} Rows(1).EntireRow.Delete {ENTER} Rows(1).EntireRow.Delete {ENTER} Rows(1).EntireRow.Delete {ENTER} Rows(1).EntireRow.Delete {ENTER} Columns(\[1\]).EntireColumn.Delete {ENTER} Columns(\[1\]).EntireColumn.Delete")
Send ("{F5}")
Sleep(2000)
Sleep(2000)
Sleep(2000)
Sleep(2000)
Send ("{ALTDOWN}{F4}{ALTUP}")
Sleep(2000)
Sleep(2000)
Sleep(2000)
Send("{F12}")
Sleep(2000)
Sleep(2000)
Sleep(2000)
Sleep(2000)
Send("{TAB}c{ENTER}")
Sleep(2000)
Sleep(2000)
Send("{TAB}{ENTER}")
Sleep(2000)
Sleep(2000)
Send("{ENTER}")
Sleep(2000)
Sleep(2000)
Sleep(2000)
_Excel_BookClose($oWorkbook, False)
Send("{TAB}{ENTER}")
Sleep(2000)
Sleep(2000)
Send ("{ALTDOWN}{F4}{ALTUP}")][1]][1]
【问题讨论】:
-
你为什么不直接
Send("!s")发送 ALT + S 来按下保存按钮?在这里查看更多示例:autoitscript.com/autoit3/docs/appendix/SendKeys.htm -
我试过了,以及其他选项,好像 autoit 不能或不会向那个窗口发送任何东西,我不知道为什么。