繁体   English   中英

自动删除Google表格中的多个表格

[英]Autodelete over multiple sheets in google sheets

当K列中的日期小于当前日期时,我编写了以下脚本以自动删除工作表中的行。 我最近在工作表中添加了一些新标签,但是无法获取删除这些新标签的代码。 该日期保留在新选项卡的K列中。 这是脚本。 我需要进行哪些调整才能使其正常工作?

function onOpen() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Clear Carry Overs",
    functionName : "Update"
  }];
  spreadsheet.addMenu("Script Center Menu", entries);
};

function Update(){

  var sheet = SpreadsheetApp.getActiveSheet();  RIGHT HERE IS WHERE I CHANGED THE CODE TO NOW READ:
  var sheet = SpreadsheetApp.getActiveSpreadsheet().
  getSheets();
   for(i in sheets)  {
      var sheet = sheets[i];}
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var numColumns = rows.getNumColumns();
  var values = rows.getValues();
  var date = new Date();

  for (var i = 5; i <= numRows - 1; i++) {

    var row = values[i];
    //Logger.log(row[1])
    if(row[1] != ''){
      var sheetDate = new Date(row[10]);
      Sdate=Utilities.formatDate(date, 'CST', 'MM/dd/yyyy')
      SsheetDate=Utilities.formatDate(sheetDate, 'CST', 'MM/dd/yyyy')
      if (Sdate.valueOf() > SsheetDate.valueOf()){
        for(j=2; j < numColumns; j++){
          var valuee = sheet.getRange(i+1, j).clearContent();
        }
        Logger.log("Row " + (i+1) + " was deleted")
      } 
    }
  }
}

新代码:

更换:

var sheet = SpreadsheetApp.getActiveSheet();

有:

var sheets= SpreadsheetApp.getActiveSpreadsheet().getSheets();
 for(i in sheets) {
    var sheet = sheets[i];

然后在底部添加一个右花括号}

function Update(){
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
   for(i in sheets) {
     var sheet = sheets[i];
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var numColumns = rows.getNumColumns();
  var values = rows.getValues();
  var date = new Date();

  for (var i = 5; i <= numRows - 1; i++) {

    var row = values[i];
    //Logger.log(row[1])
    if(row[1] != ''){
      var sheetDate = new Date(row[10]);
      Sdate=Utilities.formatDate(date, 'CST', 'MM/dd/yyyy')
      SsheetDate=Utilities.formatDate(sheetDate, 'CST', 'MM/dd/yyyy')
      if (Sdate.valueOf() > SsheetDate.valueOf()){
        for(j=2; j < numColumns; j++){
          var valuee = sheet.getRange(i+1, j).clearContent();
        }
        Logger.log("Row " + (i+1) + " was deleted")
      } 
    }
  }
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM