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

Google Sheets单侧锁定范围复制粘贴及按日期查找行号的Apps Script实现问题

调整后可直接使用的脚本
function myFunction1() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getActiveSheet();
  // 固定操作指定工作表可替换为下行,把「数据表」改成你的实际表名
  // const sheet = spreadsheet.getSheetByName("数据表");

  // 获取目标日期和B列的日期搜索范围
  const targetDate = sheet.getRange("H2").getValue();
  const maxSearchRow = 3995;
  const columnBData = sheet.getRange(`B2:B${maxSearchRow}`).getValues().flat();

  // 匹配H2指定日期的对应行
  const matchedIndex = columnBData.findIndex(item => {
    return item && item.getTime() === targetDate.getTime();
  });
  if (matchedIndex === -1) {
    SpreadsheetApp.getUi().alert("B列未找到匹配日期,请确认H2日期格式与B列一致");
    return;
  }
  const endRow = matchedIndex + 2;

  // 执行范围粘贴数值操作
  const operateRange = sheet.getRange(`A2:F${endRow}`);
  operateRange.copyTo(operateRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  sheet.getRange("A1:B1").activate();
}
逻辑说明
  • 日期匹配通过时间戳对比,避免出现显示格式一致但数据类型不同导致的匹配失败问题,匹配不到时会弹出提示避免误操作
  • 搜索范围严格限定在B2:B3995,最终操作范围不会超出A2:F3995的最大限制
  • 对生成的范围执行原地粘贴数值操作,原有公式会被清空替换为固定值,后续修改单元格不会影响这段历史数据
  • 不需要激活范围再操作,脚本运行效率比原参考版本更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:08