Tick Posted April 8, 2021 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.
Subz Posted April 8, 2021 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
Tick Posted April 8, 2021 Author 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?
Tick Posted April 8, 2021 Author 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.
Tick Posted April 8, 2021 Author 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
water Posted April 8, 2021 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
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