Google表格脚本:一次使用两个

时间:2016-12-19 05:03:53

标签: google-sheets

我设法获得两个单独的脚本,它们根据单元格值隐藏指定工作表标签中的行。我遇到的问题是我似乎只能使用其中一个而不是让它们都在每个单独的用例中工作。

在线查看之后,我认为只要它们在同一张纸上,多个脚本应该可以工作,但我不确定。将它们放入同一张纸之后,我遇到了相同的情况,其中一个或另一个都可以工作。

下面是我正在使用的脚本,其中包含我正在尝试运行的两个脚本。是否可以在Google表格文档中使用多个脚本?

function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("TX MD 2017");           
  var row = s.getRange('C2').getValues();                         
s.showRows(1);
for(var i=0; i< row.length; i++){ if(row[i] == 'hide') 
     { s.hideRows(5);
       s.hideRows(7); 
       s.hideRows(9);}

     else if(row[i] == 'unhide'){ s.unhideRow(ss.getDataRange()); } 
}      

s = ss.getSheetByName("DC MD 2017");           
row = s.getRange('C2').getValues();                         

s.showRows(1);
for(var i=0; i< row.length; i++){ if(row[i] == 'hide') 
     { s.hideRows(6);
       s.hideRows(9); 
       s.hideRows(12);}                           
     else if(row[i] == 'unhide'){ s.unhideRow(ss.getDataRange()); } 
                            }}

1 个答案:

答案 0 :(得分:1)

onEdit函数中嵌入了onEdit函数。将它合并为一个功能,你应该很好:

function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("TX MD 2017");           
var row = s.getRange('C2').getValues();                         
s.showRows(1);
for(var i=0; i< row.length; i++){
  if(row[i] == 'hide') {
     s.hideRows(1);
     s.hideRows(2); 
     s.hideRows(6);
     s.hideRows(4);
     s.hideRows(9);
   }                           
 else if(row[i] == 'unhide'){
   s.unhideRow(ss.getDataRange());
 } 
}

//Second section for specified tab 2 

s = ss.getSheetByName("DC MD 2017");
row = s.getRange('C2').getValues();                         

s.showRows(1);
for(var i=0; i< row.length; i++){
  if(row[i] == 'hide') {
   s.hideRows(1);
   s.hideRows(2); 
   s.hideRows(12);
   s.hideRows(11);
   s.hideRows(13);
 }
  else if(row[i] == 'unhide'){
       s.unhideRow(ss.getDataRange());
  } 
 }
}

您可以为代码的公共部分创建一个函数,调用隐藏/取消隐藏行,并从onEdit函数内部为每个选项卡调用该函数,或者保持原样,因为您隐藏了不同的行。 / p>