public static Excel.Range GetSheetRange(Worksheet sheet, string rangeString, Primer.RefType refType) { var parser = new Primer.RefParser(rangeString, ThisAddIn.MyApp, refType); int rowNumber = parser.firstRowNumber; int columnNumber = parser.firstColumnNumber; int rowNumber2 = parser.secondRowNumber; int columnNumber2 = parser.secondColumnNumber; return(sheet.Range[sheet.Cells[rowNumber, columnNumber], sheet.Cells[rowNumber2, columnNumber2]]); }
public static void SetArrayFormulas(string cellRange, string formula, Primer.RefType refType = Primer.RefType.A1) { var sheet = GetActiveSheet(); var parser = new Primer.RefParser(cellRange, ThisAddIn.MyApp, refType); if (refType == Primer.RefType.R1C1) { //Need to convert back to A1 cellRange = parser.ConvertRangeA1_R1C1(cellRange); } Excel.Range setRange = GetSheetRange(sheet, cellRange, refType); setRange.FormulaArray = formula; sheet.Cells[1, 1].Calculate(); //this doesn't seem to do much.. }