Cut Row&根据App脚本中的COLUMN值粘贴到不同的工作表中

时间:2017-03-07 17:24:59

标签: google-apps-script google-sheets

这是我使用App Script需要做的事情:

  1. 在“资料库材料”表格中,根据第3列的值找到一行。

  2. 如果是“未付罚款和退款”,请选择该行,如果是“图书馆资料”,请将其留下。

  3. 将该行粘贴到名为“未付费罚款和退款”的同一电子表格的工作表中。

  4. 注意:

    • 在电子表格“未付费罚款和退款”中,第1行被冻结并保留用于列标题。

    ****感谢您的帮助!! **

1 个答案:

答案 0 :(得分:0)

使用getRange获取“资料库材料”中的数据。循环遍历每一行,并检查第3列中单元格的值。如果是“未付罚款和退款”,请使用getValuesappendRow复制并粘贴“库材料”中的行“未付的罚款和退款”。这可能不是最正确的方法,你需要仔细检查语法,但这是一个很好的起点:

// get the spreadsheet and sheets
var ss = SpreadsheetApp.getActive();
var libraryMaterials = ss.getSheetByname("Library Materials");
var finesAndRefunds = ss.getSheetByName("Unpaid Fines & Refunds");

// gets the data in Library Materials
var range = libraryMaterials.getRange(1, 1, libraryMaterials.getLastRow(), libraryMaterials.getLastColumn());
var data = range.getvalues();

// loops through rows in data
for (var i = 0; i > data.length; i++) {
  var stay = "Library Materials";
  var copy = "Unpaid Fines & Refunds");
  var check = data[i][3]; // ith row, 3rd column
  if (check == stay) {continue}; // do nothing
  else if (check == copy) {
    var rowToCopy = [range[i]].getValues();
    finesAndRefunds.appendRow(rowToCopy[0]);
  }; // copy the row
  else { Logger.log("error message") }; // send an error message
}; // end i

如果您要删除该行,请将行libraryMaterials.deleteRow(i);添加到if else的末尾。