将单元格值从一个工作表复制并粘贴到另一个工作表onEdit

时间:2018-03-15 00:35:56

标签: google-apps-script google-sheets

我编写了一个谷歌脚本来创建一个工作表中的单元格并将其粘贴到另一个工作表(同一个电子表格)。该代码包括以下两个步骤:

  1. (有效):如果编辑了一张特定列的单元格,则下一个相邻单元格将根据编辑获取值。

  2. (不起作用):将相邻单元格的新值粘贴到第二张表格中下一个空行(第1列)的单元格中。

  3. 以下代码是我到目前为止所尝试的,但该值未出现在第二张表中。有人在下面的尝试中知道问题出在哪里吗?

    Thx

    function onEdit() {
     var a = [19,21,23]
     var ss = SpreadsheetApp.getActive()
     var s = ss.getActiveSheet();
      if( s.getName() == "ALL" ) {
       var valActive = s.getActiveCell();
       var col = valActive.getColumn();
       var row = valActive.getRow();
       var range = s.getRange(row, 1);
       var val0 = range.getValue();
       if( a.indexOf(col) > -1 && valActive.getValue() != '') {
        var nextCell = valActive.offset(0, 1);
        var val1 = valActive.getValue();
        var time = Utilities.formatDate(new Date, "GMT+1", "HHmm");
         nextCell.setValue(val0 + '_' + val1 + '_' + time);
        var rowNext = nextCell.getRow();
        var colNext = nextCell.getColumn();
        var target = SpreadsheetApp.getActive().getSheetByName("Samples");
        var lastRow = target.getLastRow();
        s.getRange(rowNext, colNext).copyTo(target.getRange(lastRow + 1, 1), {contentsOnly: true});
       }
      }
     }
    

1 个答案:

答案 0 :(得分:0)

要使第二部分正常工作,您需要在另一张图纸上添加一行。尝试这样的事情:

  var sheet = SpreadsheetApp.getActive().getSheetByName("Name");
  sheet.appendRow([newValue]);