繁体   English   中英

从范围复制单元格值并将其粘贴到另一个工作表的单行中

[英]To copy Cell values from a range and paste it in a single row of another sheet

想要完成下面提到的任务,拥有 2 张工作表(工作表 1 和工作表 2)单击工作表 1:J1 上的复选框时,工作表 1 上的表格中的数据应粘贴在工作表 2 的单行中,例如产品 1 数据(P1) 到产品 1 列,产品 2 数据 (P2) 到产品 2 列等等......对于每个新提交,新数据将记录在 Sheet2 的下一行。 SS 链接: https ://docs.google.com/spreadsheets/d/1tmnDOMyupjeO8d65qHQsxb5KrrKeq7pMYIE8h2VmEJ4/edit?usp=sharing

提前致谢

我相信你的目标如下。

  • 当检查“ Sheet1”的“ H1”的复选框时,您想将“ A3:G6”单元格的值复制到“ Sheet2”的一行中的列“ B”列。
  • 并且,您要将“Sheet1”的“B1”和“B10”复制到“Sheet2”的“A”和“AD”列。
  • 在您的电子表格中,没有合并的单元格。

在这种情况下,下面的示例脚本怎么样?

示例脚本:

function onEdit(e) {
  const range = e.range;
  const sheet = range.getSheet();
  if (sheet.getSheetName() != "Sheet1" || range.getA1Notation() != "H1" || !range.isChecked()) return;
  const srcRange = sheet.getRange("A3:G6");
  const [[b1], , , , , , , , , [b10]] = sheet.getRange("B1:B10").getValues();
  const values = [b1, ...srcRange.getValues().flat(), b10];
  const dstSheet = e.source.getSheetByName("Sheet2");
  dstSheet.appendRow(values);
  range.uncheck();
  // srcRange.clearContent();
}
  • 该脚本使用 OnEdit 触发器的简单触发器自动运行。 因此,当您使用此脚本时,请选中“Sheet1”的“H1”复选框。 这样,脚本就运行了。 当您直接运行脚本时,会出现Cannot read property 'range' of undefined类的错误。 请注意这一点。
  • 如果要在复制值后清除源范围,请使用srcRange.clearContent(); .

笔记:

  • 此示例脚本适用于您的示例电子表格。 因此,当您更改电子表格时,此脚本可能无法使用。 请注意这一点。

参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM