首页 > 解决方案 > 在 Google 电子表格中传输和删除数据

问题描述

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

如果找到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);
};

标签: google-apps-scriptgoogle-sheets

解决方案


解决方案 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++;
    }
  }
};

解决方案 2(基于评论) - 转移到另一个电子表格文件:

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++;
    }
  }
};

请注意, 1.4用作检查第5列即E列的索引。确保获取正确的索引号以选择所需的列。


推荐阅读