After AutoIt 184.108.40.206 the handling of COM errors has been "fixed".
Now nested COM operations crash the script in case of an error even when there is a COM error handler.
Edit: All 3 problems have been fixed in AutoIt 220.127.116.11.
Here you find a fixed version of function _Excel_RangeFind. I simply removed all nestings and added the missing COM error hander:
Another function that needed some modification is _Excel_BookOpen. It crashed when a workbook was opened using _Excel_BookOpen with parameter $bVisible = True, saved and then reopened. The following modification solves the problem:
Another function that needed some modification is _Word_DocSaveAs. It doesn't work with Word 2013 or later as MS felt the urge to change the name of the save method from SaveAs to SaveAs2.
The following modification solves the problem:
Please tell me if you still have problems with this or any other function from the Excel or Word UDF!
anybody know what this is about?
I have tried on three different PC's all give me the same error whether my own code or the Help File Examples...
All other excel func's work fine. ( haven't tested them all but most)
>Running:(18.104.22.168):C:\Users\XXXXX\Desktop\autoit-v3\install\autoit3.exe "C:\Users\XXXXX\Desktop\autoit-v3\install\Examples\Helpfile\_Excel_RangeFind.au3" --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop "C:\Users\XXXXX\Desktop\autoit-v3\install\Include\Excel.au3" (656) : ==> The requested action with this object has failed.: $aResult[$iIndex] = $oMatch.Name.Name $aResult[$iIndex] = $oMatch^ ERROR No script error to speak of just this Include error.
Any help is greatly appreciated.
I have an issue with _ExcelRangeFind, i have a it working on another PC but on my pc i just gives me this error
"d:\AutoIt3\Include\Excel.au3" (656) : ==> The requested action with this object has failed.:
$aResult[$iIndex] = $oMatch.Name.Name
$aResult[$iIndex] = $oMatch^ ERROR
I have trimmed the script to the absolute minimum.
What iy should do, I give it a number, It opens an excel file, and then it reads through coloumn A and then returns an array when it finds the number in Excel. The number is in coloumn A of the Excel sheet.
The versions of autoit are the same on both machines.
The Excel sheet opens correctly, but it crashes on the rangefind command. I have also tried this $NavisionIDFound = _Excel_RangeFind($Movielistsheet,$NavisionID,"A1:A10000",Default,$xlWhole,True), with the same result.
#include <ButtonConstants.au3> #include <ComboConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Array.au3> #include <File.au3> #include <MsgBoxConstants.au3> #include <GUIConstantsEx.au3> #include <GuiEdit.au3> #include <GuiButton.au3> #include <GuiComboBox.au3> #include <Excel.au3> ;Includes from source dir #include <_RecFileListToArray.au3> #include <_XMLDomWrapper.au3> $MovielistExcel = "h:\Movie list.xlsm" LoadDataFromMovieListSheet() Func LoadDataFromMovieListSheet() ConsoleWrite("Load Data From MovieList Sheet" & @LF) $NavisionID = 106266 ; Create application object $ExcelAppHandle = _Excel_Open(Default,Default,Default,Default,True) If @error Then Exit MsgBox(16, "Excel UDF: _Excel_BookOpen Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended) $Movielistsheet = _Excel_BookOpen($ExcelAppHandle, $MovielistExcel, True, Default) ;~ Read the formulas of a cell range (all used cells in column A) $NavisionIDFound = _Excel_RangeFind($Movielistsheet,$NavisionID,$Movielistsheet.ActiveSheet.Usedrange.Columns("A:A"),Default,$xlWhole,True)