2017-10-20 47 views
0

我目前正試圖找到一種方法來隱藏在B列11到16列中具有文本「是」的每一行。目前,我可以將它隱藏包含「是的「,但只在第11張上,而不是在後面的幾張上。任何想法如何解決這個將不勝感激。谷歌腳本基於單元格文本隱藏行

function Hide() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 

    for (var i = 11; i <= 16; i++) { 
    var sheet = ss.getSheets()[i]; 

    sheet.showRows(1, sheet.getMaxRows()); 
    for (var i = 1; i < sheet.getMaxRows()+1; ++i) { 
     if (sheet.getRange(i,2).getValue() == "Yes") { 
     sheet.hideRows(i,1); 
     } 
    } 
    } 
} 

回答

0

您使用i兩次,一次用於表單,一次用於行。另外,如果您有很多行,則只讀一次然後遍歷數據是有意義的。

function Hide() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheets = ss.getSheets(); 
    for (var sheetI = 1; sheetI <= 3; sheetI++) { 
    var sheet = sheets[sheetI]; 
    sheet.showRows(1, sheet.getMaxRows()); 
    var colB = sheet.getRange("B:B").getValues().map(function(row) {return row[0];}); 

    colB.forEach(function(value, rowI) { 
     if (value === "Yes") { 
     sheet.hideRows(rowI + 1, 1); 
     } 
    }); 
    } 
} 

你甚至可以擴大這個隱藏的「是」連續行如果出現這種情況往往使其更快

+0

感謝這麼多,它的工作完美! – Unfortunate

相關問題