2016-12-19 53 views
0

我設法獲得兩個單獨的腳本,它們根據單元格值隱藏指定表單選項卡中的行。我遇到的問題是,我似乎只能使用一種或另一種,而不是讓它們在每個單獨的用例中都起作用。Google表格腳本:一次使用兩個

查看在線後,我認爲多個腳本應該能夠工作,只要他們在同一張表上,但我不確定這一點。把它們放在同一張表中後,我遇到了其中一個或另一個工作的相同情況。

下面是我正在使用的腳本包含我試圖運行的兩個腳本。是否可以在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

在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內函數,或者保持原樣,因爲你隱藏了不同的行。

+0

它的工作!非常感謝你。 – davecut85

相關問題