如何在不移动过滤功能的情况下将一组过滤后的数据移动到另一张纸上?

时间:2016-09-29 14:33:40

标签: javascript database google-sheets

我使用过滤功能=过滤器('办理登机手续'!A8:G,'办理登机手续'!C8:C = C4)来过滤我的& #39;检查-在'我的退房表中的表单'片。我还写了第一篇“退房”栏目。在某种方式将行复制到名为'数据库'一旦第一列行包含" y" (表示是)。它可以工作,但是当选择第一行(包括过滤器功能)时,它也会复制公式,之后数据库表将不会存储更多数据。任何意见,将不胜感激。

function onEdit(event) {
  assumes source data in sheet named Needed
  target sheet of move to named Acquired
  test column with yes/no is col 4 or D
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "check-out" && r.getColumn() == 1 && r.getValue() == "y") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Database");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target);

1 个答案:

答案 0 :(得分:0)

您只能复制值:

  

<强> copyTo(destination, options)

     

将一系列细胞中的数据复制到另一个细胞范围。通过   默认值都会复制值和格式,但这可以是   使用高级参数覆盖。

 // The code below will copy only the values of the first 5 columns over        
 // to the 6th column.
 var sheet = SpreadsheetApp.getActiveSheet();
 sheet.getRange("A:E").copyTo(sheet.getRange("F1"), {contentsOnly:true});
 }

在你的情况下:

s.getRange(row, 1, 1, numColumns).copyTo(target, {contentsOnly:true});