【发布时间】:2019-11-22 16:42:24
【问题描述】:
我想从我公司的数据库中获取信息,单击“导出到 excel”按钮(一切正常),然后将导出的内容保存到特定文件夹中。
第一个工作正常,保存,然后退出。
第二个没有。第二个文件 TEST1 没有被删除,即使我在删除命令之后进入 MsgBox。
然后会弹出一个灰色的 Excel 窗口,其中没有工作表,一秒钟后它消失了,第二个导出的工作表仍然在那里。
如果不是唯一打开的 Excel 工作簿,我不知道它认为 X2 指的是什么。我是否需要以某种方式“真正”退出 X1 或其他什么?如果我尝试执行两个 saveAs,它似乎会失败。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
+^g::
;; generate an excel spreadsheet from our DB
Sleep 5000
X1 := ComObjActive("Excel.Application")
X1.Visible := True
If FileExist("M:\Current Users\aparisi\MaryFiles\TEST.xlsx") {
MsgBox, "We found TEST"
FileDelete, "M:\Current Users\aparisi\MaryFiles\TEST.xlsx"
}
X1.ActiveWorkbook.SaveAs("M:\Current Users\aparisi\MaryFiles\TEST.xlsx")
X1.Quit()
;; props
;; generate a 2nd excel spreadsheet from our DB
Sleep 5000
X2 := ComObjActive("Excel.Application")
X2.Visible := True
If FileExist("M:\Current Users\aparisi\MaryFiles\TEST1.xlsx") {
MsgBox, "We found TEST1"
FileDelete, "M:\Current Users\aparisi\MaryFiles\TEST1.xlsx"
MsgBox, "We apparently just deleted TEST1"
}
X2.ActiveWorkbook.SaveAs("M:\Current Users\aparisi\MaryFiles\TEST1.xlsx")
X2.Quit()
WinActivate Act! Premium Plus - TenThirtyOneServices
WinWaitActive Act! Premium Plus - TenThirtyOneServices
CoordMode, Mouse, Screen
MouseMove, 1172, 312
Click
Click
Sleep 1000
MouseMove, 1154, 688
Click
Sleep 1000
Return
【问题讨论】:
标签: excel com autohotkey