如何在等待 Context.sync 后将字符串转换为范围?
How to Convert String to Range After Awaiting Context.sync?
在下面的异步函数中,我在 Excel 中获取活动单元格,然后加载行索引。在 context.sync 之后,我创建了一个名为 "newRange" 的字符串。有没有办法可以将当前范围设置为我的 "newRange"?我需要将 newRange 转换为一个范围。
例如,如果我的活动单元格是 Sheet1!B8,那么我的 "newRange" 将是 "Sheet!A8:E8"。找到这个之后,我需要将它转换为一个范围并加载该地址并再次等待 context.sync() 。那么如何将 "newRange" 转换为一个范围呢?
addToBOM = async () => {
try {
await Excel.run(async context => {
let range = context.workbook.getActiveCell();
range.load("rowIndex");
range.format.fill.color = "yellow";
await context.sync();
let newRange = (`Sheet1!A${range.rowIndex}:E${range.rowIndex}`);
console.log(newRange)
});
} catch (error) {
console.error(error);
}
this.setState({
})
};
您不能直接更改 range
对象的地址,因为地址 属性 是只读的。但是,您可以使用 Range.getOffsetRange method or the Range.getResizedRange 方法生成具有所需地址的新范围。
在下面的异步函数中,我在 Excel 中获取活动单元格,然后加载行索引。在 context.sync 之后,我创建了一个名为 "newRange" 的字符串。有没有办法可以将当前范围设置为我的 "newRange"?我需要将 newRange 转换为一个范围。
例如,如果我的活动单元格是 Sheet1!B8,那么我的 "newRange" 将是 "Sheet!A8:E8"。找到这个之后,我需要将它转换为一个范围并加载该地址并再次等待 context.sync() 。那么如何将 "newRange" 转换为一个范围呢?
addToBOM = async () => {
try {
await Excel.run(async context => {
let range = context.workbook.getActiveCell();
range.load("rowIndex");
range.format.fill.color = "yellow";
await context.sync();
let newRange = (`Sheet1!A${range.rowIndex}:E${range.rowIndex}`);
console.log(newRange)
});
} catch (error) {
console.error(error);
}
this.setState({
})
};
您不能直接更改 range
对象的地址,因为地址 属性 是只读的。但是,您可以使用 Range.getOffsetRange method or the Range.getResizedRange 方法生成具有所需地址的新范围。