Google apps script 在Google电子表格中传输和删除数据

Google apps script 在Google电子表格中传输和删除数据,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在尝试使用Google Apps脚本创建一个函数,该函数将在我的Google电子表格的特定列中搜索wordYes 如果发现是,它将继续将这些整行复制到另一个保存到我的谷歌硬盘的电子表格中,然后从原始电子表格中删除 我对这种语言几乎没有经验,但我已经编写了一些代码 我正在寻找一种正确的执行方法,以及如何完成我的代码。你会怎么做 最新代码编辑: function moveDelete() { var sh = SpreadsheetApp.getActiveSpreadsheet().get

我正在尝试使用Google Apps脚本创建一个函数,该函数将在我的Google电子表格的特定列中搜索word
Yes

如果发现
,它将继续将这些整行复制到另一个保存到我的谷歌硬盘的电子表格中,然后从原始电子表格中删除

我对这种语言几乎没有经验,但我已经编写了一些代码

我正在寻找一种正确的执行方法,以及如何完成我的代码。你会怎么做

最新代码编辑:

function moveDelete() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dsh=SpreadsheetApp.getActive().getSheetByName('Sheet2');

  var data = sh.getRange(1, 1, sh.getLastRow()-1).getValues();
  var range = sh.getRange(1, 1, data.length);


  var rowsDeleted = 0;
  for (var i = 0; i <= data.length - 1; i++) {3
    var array = data[i]
    if (array[4] == 'Yes') {
      dsh.appendRow(array);
      sh.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++;
    }
  }
};

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Send to Record",
    functionName : "moveDelete"
  }];
  sheet.addMenu("Custom Menu", entries);
};
函数moveDelete(){
var sh=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var dsh=SpreadsheetApp.getActive().getSheetByName('Sheet2');
var data=sh.getRange(1,1,sh.getLastRow()-1).getValues();
var range=sh.getRange(1,1,data.length);
var rowsDeleted=0;

对于(var i=0;i解决方案1-传输到同一文档:

function moveDelete() {
  
  var ss = SpreadsheetApp.getActive()
  var sh = ss.getSheetByName('Sheet1');
  var dsh= ss.getSheetByName('Sheet2');  
  var data = sh.getDataRange().getValues();

  var rowsDeleted = 0;
  for (var i = 0; i <= data.length - 1; i++) {
    var array = data[i]
    if (data[i][4] == 'Yes') {
      dsh.appendRow(array);
      sh.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++;
    }
  }
};
function moveDelete() {
  
  var ss = SpreadsheetApp.getActive();
  var ts = SpreadsheetApp.openById("id of the target spreadsheet here"); // example: 31d6k7iXh20rjLn22m0axvscR6-BcyOy_fxhdk-ResXU
  var sh = ss.getSheetByName('Sheet1'); // Sheet1 of the source spreadsheet
  var dsh= ts.getSheetByName('Sheet2'); // Sheet2 of the target spreadsheet
  var data = sh.getDataRange().getValues();

  var rowsDeleted = 0;
  for (var i = 0; i <= data.length - 1; i++) {
    var array = data[i]
    if (data[i][4] == 'Yes') {
      dsh.appendRow(array);
      sh.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++;
    }
  }
};
函数moveDelete(){
var ss=SpreadsheetApp.getActive()
var sh=ss.getSheetByName('Sheet1');
var dsh=ss.getSheetByName('Sheet2');
var data=sh.getDataRange().getValues();
var rowsDeleted=0;

对于(var i=0;我已经做了更改,但是,现在它给了我以下错误代码:“参数()与SpreadsheetApp.Sheet.getRange的方法签名不匹配”Sheet1是否存在?@CristianGarciaYes,它确实存在我需要将参数包含在“getRange()中”'方法然后使用原始代码。选择Sheet1并运行脚本。@CristianGarcia