Tick Posted April 8, 2021 Share Posted April 8, 2021 Hello dear friends! The stock application I work with generates reports in the form of Excel files that it opens on the screen. I would like to automatically receive some information from them, and then close these particular windows. But I can't figure out how to work with this window using Autoit tools? For example, when I try to close this particular window, all Excel windows are closed. Or just this process - but several at once. Quote while True WinWaitActive("_CurrentDay_","", 0);жду окна ;Send ( "!{F4}") WinClose("_CurrentDay_") sleep(5000) WEnd I tried to iterate over all Excel processes and all open books to select the ones I needed and close them. But this procedure often gives an error. Quote $nCount = 0 While True Local $obj = ObjGet("", "Excel.Application", $nCount + 1) If @error Then ExitLoop $books=$obj.Application.Workbooks.Count MsgBox(4096, "",$books&" books") for $i=1 to $books $obj.DisplayAlerts = False MsgBox(4096, "",$obj.application.workbooks($i).name) $obj.application.workbooks($i).close If @error Then ExitLoop sleep(500) Next $nCount += 1 WEnd What am I doing wrong? I would be grateful for your advice. Link to comment Share on other sites More sharing options...
Subz Posted April 8, 2021 Share Posted April 8, 2021 Have a look at the _Excel functions in the help file, try _Excel_BookAttach then _Excel_BookClose to close the workbook. Tick 1 Link to comment Share on other sites More sharing options...
Tick Posted April 8, 2021 Author Share Posted April 8, 2021 2 hours ago, Subz said: Have a look at the _Excel functions in the help file, try _Excel_BookAttach then _Excel_BookClose to close the workbook. Subz thanks for the answer! i tried to use your advice. unfortunately, I didn't succeed. Doesn't return values from the cell. #include <Array.au3> #include <Excel.au3> #include <MsgBoxConstants.au3> Opt("WinTitleMatchMode", 2) while True WinWaitActive("_CurrentDay","", 0) $Active=WinGetHandle("_CurrentDay") $oExcel = _Excel_open() $oWorkbook = _Excel_Bookattach($Active) $read=_Excel_Rangeread($oWorkbook,Default,"A1") MsgBox(0,0,$read) _Excel_BookClose($oWorkbook) sleep(5000) WEnd Maybe I got it wrong somewhere? Link to comment Share on other sites More sharing options...
Tick Posted April 8, 2021 Author Share Posted April 8, 2021 and does not close the excel Link to comment Share on other sites More sharing options...
Tick Posted April 8, 2021 Author Share Posted April 8, 2021 #include <Array.au3> #include <Excel.au3> #include <MsgBoxConstants.au3> Opt("WinTitleMatchMode", 2) while True WinWaitActive("_CurrentDay","", 0) $Active=WinGetTitle("_CurrentDay") $oExcel = _Excel_open() $oWorkbook = _Excel_Bookattach($Active,"Title") $read=_Excel_Rangeread($oWorkbook,Default,"A1") MsgBox(0,0,$read) _Excel_BookClose($oWorkbook) sleep(5000) WEnd fixed obvious bugs. that doesn't work either. Doesn't return a value or close the workbook. Does not give errors. only one book is open. Link to comment Share on other sites More sharing options...
Tick Posted April 8, 2021 Author Share Posted April 8, 2021 I think I get it. I needed to exclude _Excel_open - then everything works. while True WinWaitActive("_CurrentDay","", 0) $Active=WinGetTitle("_CurrentDay") $oWorkbook = _Excel_Bookattach($Active,"Title") $read=_Excel_Rangeread($oWorkbook,Default,"A1") MsgBox(0,0,$read) _Excel_BookClose($oWorkbook, False) sleep(5000) WEnd Link to comment Share on other sites More sharing options...
water Posted April 8, 2021 Share Posted April 8, 2021 I suggest to add some error checking: #include <Excel.au3> While True WinWaitActive("_CurrentDay", "", 0) $sWindowTitle = WinGetTitle("_CurrentDay") $oWorkbook = _Excel_BookAttach($sWindowTitle, "Title") If @error = 0 Then $sRangeRead = _Excel_RangeRead($oWorkbook, Default, "A1") MsgBox(0, 0, $sRangeRead) _Excel_BookClose($oWorkbook, False) EndIf Sleep(5000) WEnd Tick 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now