2016-04-13 8 views
1

私はこのスクリプトを使用しています(クレジット:Eduardo Kuwakino)。 問題は、列Aから行Aを値 "x"で1つずつ隠すことです。 これらのスプレッドシートを編集しているユーザーにとってこれを「苦痛の少ないものにする」ことは可能ですか?Googleスプレッドシートの多くの行を一度に非表示にすることはできますか?

function hideCells(sheet) 
{ 
    var maxRows = sheet.getMaxRows(); 

    //show all the rows 
    sheet.showRows(1, maxRows); 

    //get data from clumn A 
    var data = sheet.getRange('A:A').getValues(); 

    //iterate over all rows 
    for(var i=0; i< data.length; i++){ 
    //compare first character, if asterisk, then hide row 
    if(data[i][0].charAt(0) == 'x'){ 
     sheet.hideRows(i+1); 
    } 
    }} 

function onOpen() { 
    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 

    for(var i=0; i< sheets.length; i++){ 

     hideCells(sheets[i]); 
    } 
} 

答えて

3

あり、一度に複数の行を非表示にすることができる方法hideRowsはあるが、彼らは連続しでなければなりません。あなたの状況では、行は一般的に連続していません。だから、スクリプトはひとつずつ(あるいはグループになって一緒になってしまうかもしれませんが、多分助けてくれるとは思えません。実際、これは大きなシートでは遅くなります。代替案として

、私は、特にカスタム式列Aでシートをフィルタリングし、filter viewを使用することをお勧め=A2<>"x"

filter view

各フィルタビューを編集する人に送信することができ、独自のURLを、持っていますスプレッドシート。 Aの値が「x」と異なる行だけが表示されます。

関連する問題