状态更改时将行的列移动到另一张工作表的代码

问题描述 投票:0回答:1

我是编码新手,正在寻求帮助。我有代码可以在状态更改时在 Google 表格中移动整行,如下所示:

 var editedRange = e.range;
var editedRow = editedRange.getRow();
console.log(editedRow);

if (editedRange.getColumn() === statusColumn) {
var status = editedRange.getValue();
if (status === "Closed/Won") {
  var lastColumn = sourceSheet.getLastColumn();
  var sourceData = sourceSheet.getRange(editedRow, 1, 1, lastColumn);

  if (sourceData[0] != "") {
    sourceData.copyTo(destinationSheet.getRange(destinationSheet.getLastRow() + 1, 1));
    }

我不确定如何编辑它,而不是移动整行,只移动行的一部分,即从 A、B、D、F、G、H 和 M 列中的信息到另一张纸以创建该行的压缩版本原表。

我尝试了更改编辑行和最后一列的不同组合,也尝试了数组,但无法正常工作,我发现的大多数答案似乎只涵盖移动整行而不是行中的特定列。

google-apps-script
1个回答
0
投票

将行移至同一电子表格中的另一张工作表

function onEdit(e) {
  const sh = e.range.getSheet();
  if (sh.getName() == "SheetName" && e.range.columnStart() == 1 && e.range.rowStart > 1 && e.value == "Closed/Won") {
    let tsh = e.source.getSheetByName("Log");
    sh.getRange(e.range.rowStart,1,1,sh.getLastColumn()).copyTo(tsh.getRange(tsh.getLastRow() + 1, 1))
  }
}

我不知道状态栏号是多少,所以我选择了1。

© www.soinside.com 2019 - 2024. All rights reserved.