You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Excel Scripts将AA-AD列动态填充至Z列的最后一行?

Excel Script: 动态根据Z列最后一行填充AA-AD列

我来帮你搞定这个动态填充的问题!核心思路就是先找到Z列有数据的最后一行,再用这个行号来确定AA-AD列的填充范围,这样就不会出现填充过多或不足的情况了。

修改后的完整代码

function main(workbook: ExcelScript.Workbook) { 
  let selectedSheet = workbook.getActiveWorksheet(); 
  // 设置初始表头和第一行公式
  selectedSheet.getRange("AA26:AD27").setFormulas([
    ["FAK", "FK", "PN", "STEEL"], 
    ["=S27&R27", "=XLOOKUP(AA27,'[FAKEFILENAME.xlsx]FAKE VENDOR'!$A:$A,'[FAKEFILENAME.xlsx]FAKE VENDOR'!$B:$B)", "=\"PIPE SPOOL \"&U27", "=XLOOKUP(AC27,'[FAKEFILENAME.xlsx]PARTS'!$B:$B,'[FAKEFILENAME.xlsx]PARTS'!$F:$F)"]
  ]); 

  // 获取Z列最后一行的行号(转换为Excel的1-based行号)
  const lastRowZ = selectedSheet.getRange("Z:Z").getLastCell().getRowIndex() + 1;

  // 动态拼接填充范围并执行自动填充
  const targetFillRange = `AA27:AD${lastRowZ}`;
  selectedSheet.getRange("AA27:AD27").autoFill(targetFillRange, ExcelScript.AutoFillType.fillDefault); 
}

关键部分解释

  • 获取Z列最后一行:selectedSheet.getRange("Z:Z").getLastCell()会定位到Z列中最后一个包含数据的单元格,getRowIndex()返回的是0-based索引(从0开始计数),所以加1转换为Excel常用的1-based行号。
  • 动态生成填充范围:用模板字符串AA27:AD${lastRowZ}自动拼接出目标范围,确保AA-AD列只填充到Z列最后一行对应的位置。
  • 保持原有逻辑:保留了你原来的表头和第一行公式设置,只修改了填充范围的部分,不会影响原有功能。

内容的提问来源于stack exchange,提问作者Jayden Tijerina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 10:39:06