In my Excel tab pane addin I want to get some rows from range based only on active selected rows.
Initially my data located in "Sheet1!H5:I16", and I select in worksheet only rows without tables f.e. "Sheet1!8:10"
For detect selected rows I get selected range and load some options:
Excel.run(function (ctx) {
var selectedRange = ctx.workbook.getSelectedRange();
selectedRange.load(['address', 'rowIndex', 'rowCount']);
return ctx.sync().then(function() {
console.log(selectedRange.address);
});
});
It gives me address "Sheet1!8:10" and selectedRange.rowIndex=7 and selectedRange.rowCount=3
Now I subtract my range row from selection:
var subsIndex = selectedRange.rowIndex - 5 // 5 is start index H5
And here I have my row inside data range rowIndex, it is 3.
Again: for whole worksheet my rowIndex is 7, for selection, intersected my data range, row index is 3.
Now I want to get first row of inside data range rowIndex(it must be Sheet1!H8:I10) from whole data Sheet1!H5:I16 based only on selected rows(selectedRange.rowIndex=7 and selectedRange.rowCount=3):
Excel.run(function (ctx) {
var sheetName = "Sheet1";
var rangeAddress = "H5:I16"; // my whole data range
var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress).getRow(subsIndex ); //try to get row number 3
range.load('address');
return ctx.sync().then(function() {
console.log(range.address); // gives me Sheet1!H5:I16 ???
});
});
Why getRange(3) gives me just whole range address Sheet1!H5:I16 insted address of row by index 3: Sheet1!H8:I8 ?
Orange: data range
Red: Needed row

