繁体   English   中英

有没有办法使用 AutoHotkey 关闭特定 Excel 文件的窗口?

[英]Is there a way to close the window of specific Excel file using AutoHotkey?

我想用 AHK 脚本关闭标题为“状态”的 Excel 文件的窗口。 我尝试使用以下代码,但最终关闭了整个 Excel 应用程序。 (所有打开的 Excel 文件都会关闭)。

IfWinExist ("Status - Excel")
   {
       WinClose
       WinWaitClose
   }

我只需要关闭标题为“状态”的 Excel 文件。

问题在于它是一个 Excel 实例,同时打开了多个文档。 WinClose类似于ALT + F4时,你需要的是CTRL + F4 ......所以让我们做到这一点。

f1::
If WinExist( "Status - Excel" )
{
    WinActivate , Status - Excel
    WinWaitActive , Status - Excel
    Send , ^{f4}
}
Return

您可以尝试调用以下函数,将您的工作簿名称作为函数参数传递,如下所示

DetectHiddenWindows, On
DetectHiddenText, On
xlFileName:= "Status - Excel"
CloseXlFile(xlFileName)
ExitApp

请注意,这里您使用的是工作簿名称“状态 - Excel”,它是文件名的未保存版本。 如果您保存文件但不编辑任何内容,则文件名可能是“状态 - 已保存”,因此程序可能无法运行。 避免你可以使用 AHK 功能

"SetTitleMatchMode, 2" ;这允许您使用部分名称而不是全名,您可以将文件名设置为 xlFileName:= "Status" 只需在 DetectHiddenText, On 之后添加 SetTitleMatchMode, 2

CloseXlFile(myfile) {
    WinMinimizeAll
if WinExist(myfile) {
    WinActivate
    try
        obj := ComObjActive("Excel.Application")
    catch {
        Sleep, 2000
        obj := ComObjActive("Excel.Application")
    }
    book:= obj.ActiveWorkbook
    book.save
    Sleep, 3000
    Book.close(-51)
    Sleep, 2000
}
else {
    return
}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM