Google脚本,用于根据复选框移动行-Google表格 [英] Google script for move rows depending on checkbox - Google sheet

查看:81
本文介绍了Google脚本,用于根据复选框移动行-Google表格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个脚本,当单元格复选框(AE列)为true时,它将行从一个选项卡"COMMUNICATIONS"移到另一个选项卡"ARCHIVE",但它只能与AE2行一起使用,当我使用它时不起作用检查AE3或AE6.

I've got a script that moves a row from one tab "COMMUNICATIONS" to another tab "ARCHIVE" when a cell checkbox (column AE) is true but it's only working well with the row AE2 and it's not working when I check AE3 or AE6.

function onEdit() {

  var sheetNameToWatch = "COMMUNICATIONS";
  var sheetNameToMoveTheRowTo = "ARCHIVE";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheetByName(sheetNameToWatch);
  var sheet2 = ss.getSheetByName(sheetNameToMoveTheRowTo);


  var cell1 = sheet1.getRange("AE2:AE1000");

  var x= cell1.getValue();

  Logger.log("a",x);


  if(cell1.getValue()== false) {

  Logger.log("box not checked");

    sheet1.showSheet();


  } else if (cell1.getValue() == true) {

    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);

    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);

    sheet.getRange(range.getRow(), 1, 1, 
    sheet.getLastColumn()).moveTo(targetRange);

    sheet.deleteRow(range.getRow());

  }
}

推荐答案

,您可以尝试以下代码.我在一张纸上对其进行了测试,效果很好.

you can try this code. I Tested it on one of my sheets and it worked fine.

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

  if(s.getName() == "COMMUNICATIONS" && r.getColumn() == 13 && r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("ARCHIVE");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }

}

这篇关于Google脚本,用于根据复选框移动行-Google表格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆