gpt4 book ai didi

Excel Javascript API - 连接范围或复杂范围选择

转载 作者:行者123 更新时间:2023-12-04 20:31:05 25 4
gpt4 key购买 nike

在 Excel 宏中,您可以做一些简单的事情,例如:

Range("C8:G8,C12:H12,C19:I19").Value = 1

这让我有机会创建复杂的范围选择并减少 API 调用和同步队列的数量。

但是当我这样做的时候

const range = activeWorkSheet.getRange("C8:G8,C12:H12,C19:I19");       
range.format.fill.color = "yellow";

我明白了

InvalidArgument: The argument is invalid or missing or has an incorrect format.

也没有我可以使用的 getJoinRange 或 getUnionRange。

有解决办法吗?我在执行诸如基于奇数/偶数格式化行之类的操作时遇到了一些性能问题。

最佳答案

即将推出一个测试版功能,它将允许多区域范围。它的语法仍然是待定的,它可能正是你写的(范围被允许是一个多区域范围),或者我们可能会让 Range 保持一个单一的连续对象并具有并行方法,如 worksheet.getMultiAreaRange( "C8:G8, C12:H12, C19:I19) 做你想做的事。

此外,您使用的是什么版本的 Office,是否使用 Insider Fast?

回复。性能,您可以将您的确切用例作为最小片段发布吗?您可能可以进行一些优化,甚至可以排除多区域范围。

更新

如果您所做的只是 3x3 或 5x5(即,不是超大的东西),则不需要多区域支持。你可以这样做:

await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
const rowCount = 5;
const columnCount = 5;
const range = sheet.getRangeByIndexes(0, 0, rowCount, columnCount);
for (let row = 0; row < rowCount; row = row + 2) {
range.getRow(row).format.fill.color = "purple";
}

await context.sync()
});

关于Excel Javascript API - 连接范围或复杂范围选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50634580/

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