gpt4 book ai didi

javascript - Office.js Excel Range getRow 给出错误的范围地址

转载 作者:行者123 更新时间:2023-11-28 05:19:45 25 4
gpt4 key购买 nike

在我的 Excel 选项卡 Pane 插件中,我想仅根据事件选定行从范围中获取一些行。

最初我的数据位于“Sheet1!H5:I16”中,我在工作表中仅选择没有表的行。 “表1!8:10”

为了检测选定的行,我获取选定的范围并加载一些选项:

Excel.run(function (ctx) { 
var selectedRange = ctx.workbook.getSelectedRange();
selectedRange.load(['address', 'rowIndex', 'rowCount']);
return ctx.sync().then(function() {
console.log(selectedRange.address);
});
});

它给了我地址“Sheet1!8:10”和 selectedRange.rowIndex=7 和 selectedRange.rowCount=3

现在我从选择中减去范围行:

var subsIndex = selectedRange.rowIndex - 5 // 5 is start index H5 

这里我的行位于数据范围 rowIndex 内,它是 3。

再次:对于整个工作表,我的 rowIndex 是 7,对于选择,与我的数据范围相交,行索引是 3。

现在我想仅基于选定的行(selectedRange.rowIndex=7 和 selectedRange.rowCount=3)从整个数据 Sheet1!H5:I16 获取内部数据范围 rowIndex 的第一行(必须是 Sheet1!H8:I10) ):

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 ???
});
});

为什么 getRange(3) 只给我整个范围地址 Sheet1!H5:I16 按索引 3 插入的行地址:Sheet1!H8:I8 ?

enter image description here

橙色:数据范围

红色:需要行

最佳答案

我不确定我是否完全遵循您的情况。但我认为像下面这样的东西会起作用(事实上,不需要您加载行索引等):

return Excel.run(function (ctx) {
var selection = ctx.workbook.getSelectedRange();
selection.format.fill.color = "purple";
var range = selection.getRow(3);
range.format.fill.color = "yellow";
range.load('address');
return ctx.sync()
.then(function() {
console.log(range.address);
})
.then(ctx.sync);
}).catch(console.log);

enter image description here

关于javascript - Office.js Excel Range getRow 给出错误的范围地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40659877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com