如何使用带有事件的谷歌应用程序脚本将特定列从一个谷歌电子表格的单行复制到另一个谷歌电子表格?

时间:2021-03-06 23:18:05

标签: google-apps-script google-sheets

当从同一行的特定单元格的下拉列表中选择一个值时,我想将电子表格中特定工作表中特定行的某些列移动(复制)到另一个电子表格中。但我希望它复制的单元格位于新电子表格中的特定位置(不仅仅是作为第一行或最后一行)。

假设我有 Cols A B C 和我想要传输的数据。但我只想传输第 5 行的数据。并且 Col J 对每一行都有一个数据验证,带有一个下拉菜单,上面写着“移动数据”,所以当我选择那个选项时,只有那个特定的范围(第 5 行的 Cols ABC)会被复制到新的电子表格中 - 假设我希望它进入第 15 行,col EF G。

我提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

function onMyEdit(e) {
  e.source.toast('entry');
  const sh = e.range.getSheet();;
  if (sh.getName() == 'Sheet1' && e.range.columnStart == 7 && e.value= 'movedata') {
    const dss = SpreadsheetApp.openById('ssid');
    const dsh = dss.getSheetByName('destination sheet name');
    const drg = dsh.getRange(15, 5, 1, 3).setValues(sh.getRange(e.range.rowStart, 1, 1, 3).getValues());
  }
}

我认为您可能需要一个可安装的触发器,但您可以先尝试一个简单的触发器。我可能是错的。我还没有测试过,所以不要假设一切都是正确的。您需要输入正确的工作表名称。

相关问题