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

Google Apps Script脚本优化:如何为匹配行同时插入两列值?

解决方法

原脚本已能准确定位匹配行并设置B列值,要给同一行M列设置value2,只需在找到匹配的C列单元格后,同步获取对应行的M列范围并批量赋值即可。

修改后的脚本如下:

function insert(){
  var mSheet = SpreadsheetApp.openById('1rAQ0t--PPK0-wovqdc')
  var ss = SpreadsheetApp.getActive().getSheetByName('Sheet1');
  var searchText = ss.getRange('A1').getValue()
  var value1 = ss.getRange('B1').getValue()
  var value2 = ss.getRange('C1').getValue()
  var sheet = mSheet.getSheetByName('Data');
  
  if(searchText !== ''){
    // 获取所有匹配C列的单元格
    var matchedRanges = sheet.getRange('C1:C')
      .createTextFinder(searchText)
      .matchEntireCell(true)
      .findAll();
    
    // 生成B列范围列表并设置value1
    var bRangeList = matchedRanges.map(r => r.offset(0, -1).getA1Notation());
    sheet.getRangeList(bRangeList).setValue(value1);
    
    // 生成M列范围列表并设置value2(C列到M列偏移10列)
    var mRangeList = matchedRanges.map(r => r.offset(0, 10).getA1Notation());
    sheet.getRangeList(mRangeList).setValue(value2);
    
    console.log(searchText, value1, value2, bRangeList, mRangeList);
  }
}

关键修改说明:

  • 先缓存所有匹配的C列单元格,避免重复执行查找逻辑提升效率
  • 利用offset(0, 10)从C列单元格偏移到同一行的M列(C为第3列,M为第13列,差值为10)
  • 单独生成M列的范围列表,批量设置value2值

内容的提问来源于stack exchange,提问作者Yvan L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:55:30