首页 > 解决方案 > 如何在除某些选项卡之外的所有选项卡中运行此脚本?

问题描述

如果天数 <= -4,我使用此代码根据列设置一些值

function SetValues(){

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var responses = ss.getSheetByName("tt");

  var data = responses.getRange(1,1,responses.getLastRow(),responses.getLastColumn()).getValues();

  data.forEach(function(row,i) {

    var date =      row [0];
    var nombre =    row [1];
    var pidePor =   row [2];
    var fechaFin =  row [3];
    var dias =      row [4];

    if (dias <= -4){

      var val = responses.getRange( i + 1, 2).getValue();
      responses.getRange( i + 1, 2).setValue(val);

      var val = responses.getRange( i + 1, 3).getValue();
      responses.getRange( i + 1, 3).setValue(val);

      var val = responses.getRange( i + 1, 4).getValue();
      responses.getRange( i + 1, 4).setValue(val);


    }

  });

}

它在引用的选项卡中工作正常,但我需要的是能够在我的工作表上运行它,不包括一些选项卡

任何人都可以帮助我请如何做到这一点?

我已经尝试了几个小时没有运气

谢谢 !

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


您需要做的就是将其放入包装函数中

numberAllTheSheets(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  sheets = ss.getSheets();
  for (i=0; i<sheets.length; i++){//Avoids sheets named "sheet one" and "sheet four"
     if sheets[i].getName=="Sheet One") continue;
     if sheets[i].getName=="Sheet Four") continue;
     SetValues(sheets[i]);
     } 

然后将设置值修改为:

function SetValues(responses){

  var data = responses.getRange(1,1,responses.getLastRow(),responses.getLastColumn()).getValues();

  data.forEach(function(row,i) {

    var date =      row [0];
    var nombre =    row [1];
    var pidePor =   row [2];
    var fechaFin =  row [3];
    var dias =      row [4];

    if (dias <= -4){

      var val = responses.getRange( i + 1, 2).getValue();
      responses.getRange( i + 1, 2).setValue(val);

      var val = responses.getRange( i + 1, 3).getValue();
      responses.getRange( i + 1, 3).setValue(val);

      var val = responses.getRange( i + 1, 4).getValue();
      responses.getRange( i + 1, 4).setValue(val);


    }

  });

}


}



}

推荐阅读