Hi @d_stapleton. The error you are getting is a fairly common one folks encounter when trying to access/use the Excel application object by code from an iLogic rule. The iLogic 'GoExcel' Interface is very convenient for some stuff, but it usually does not mix very well with code that is also attempting to bypass its limitations by accessing stuff in the Excel API directly. I generally recommend only using the functionality of the GoExcel tools, if you can, and if they do not meet the need, then avoid using it altogether, in favor of accessing the Excel API directly instead. The only way I know of to get a 2-D Array of cell values from Excel using the GoExcel tools, is by using the IGoExcel.NamedRangeValue Property. But to use that, you must have assigned a name to the range within the Excel document. If the named range just represents 1 cell, you will get a single Object from the NamedRangeValue. If you know ahead of time that the named range represents a continuous range of cells with multiple columns and rows, then you can declare a 2-D array of Object, without specifying the size of its dimensions, then set its value using that property. Below is an example line of code like that.
Dim oValues(,) As Object = GoExcel.NamedRangeValue("RangeName")
Then you can use your 2-stage nested loops to step through its contents, similar to what you are already doing.
If going the Excel API route, the usual rule 'Header' lines (if wanted) are as follows:
AddReference "Microsoft.Office.Interop.Excel.dll"
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
Using those in the header of the rule will add recognition of the Excel API objects to the Intellisense system within the iLogic rule editor window. Sometimes that works out well for some folks, and sometimes folks prefer to do without them, and just code blind (without any Intellisense support), if they are pretty familiar with the coding conventions required.
Wesley Crihfield

(Not an Autodesk Employee)