如何使用Office Scripts提取溢出区域的所有值?
解决Office Scripts提取溢出区域所有值的问题
问题出在你直接调用getRange("FilteredSpillRange")拿到的只是溢出区域的起始单元格,而非整个溢出范围——哪怕你把这个起始单元格设为命名区域,它也不会自动扩展到整个溢出结果。
试试用Office Scripts的getSpillRange()方法来获取完整的溢出区域,代码示例如下:
function main(workbook: ExcelScript.Workbook) { // 替换为你的目标工作表名称 const worksheet = workbook.getWorksheet("你的工作表名"); // 获取溢出区域的起始单元格(即你的命名区域) const spillStartCell = worksheet.getRange("FilteredSpillRange"); // 获取完整的溢出范围 const fullSpillRange = spillStartCell.getSpillRange(); if (fullSpillRange) { // 提取所有溢出值 const varFilteredList = fullSpillRange.getValues(); // 输出结果到控制台,也可以直接返回给Power Automate console.log(varFilteredList); return varFilteredList; } else { // 处理无溢出数据的情况 console.log("当前无溢出数据"); return []; } }
关键说明:
getSpillRange()是专门针对溢出公式生成区域的方法,能自动识别起始单元格关联的所有溢出内容,不管结果有多少行或列。- 加入
if (fullSpillRange)判断是为了避免溢出区域为空时触发报错,确保代码健壮性。 - 如果你的命名区域实际应该覆盖整个溢出范围但没生效,可能是命名区域的范围未随溢出结果更新,这种情况下用上述动态获取的方式更可靠,不需要手动维护命名区域的范围。
内容的提问来源于stack exchange,提问作者Aylarja
相关产品推荐
相关产品推荐

