2017-08-06 11 views
-1

私はスクリプトを初めて使い、助けを求めています。私はこのトピックについていくつかの他のスレッドを見てきましたが、彼らは私の頭の上に少しだけ新しい人です。Googleスプレッドシートの列を非表示にするスクリプト

セル(BB5)の内容に基づいて特定の列を非表示にするスクリプトが必要です。

例: BB5 = 3の場合列J-K、AJ-AM、AV、およびBAを非表示にします。 BB5 = 2の場合列H-K、AF-AM、AU-AV、およびAZ-BAを非表示にします。

ご協力いただければ幸いです。もしBB5 = 3隠す列J-K、AJ-AM、AV、およびBA:

おかげで、

ロニー

答えて

0

隠す列BB5に値に

例基づきます。 BB5 = 2の場合列H-K、AF-AM、AU-AV、およびAZ-BAを非表示にします。

function hideMyColumns() 
{ 
    var ss=SpreadsheetApp.getActive(); 
    var sh=ss.getActiveSheet(); 
    var vl=sh.getRange('BB5').getValue(); 
    var cols1=[10,11,36,37,38,39,48,53]; 
    var cols2=[8,9,10,11,32,33,34,35,36,37,38,39,47,48,52,53]; 
    switch(vl) 
    { 
    case 3: 
     for(var i=0;i<cols1.length;i++) 
     { 
     sh.hideColumns(cols1[i]); 
     } 
     break; 
    case 2: 
     for(var i=0;i<cols2.length;i++) 
     { 
     sh.hideColumns(cols2[i]); 
     } 
    } 

} 

あなたは列番号を把握するために、この機能を使用することができます列番号

enter image description here

を把握するために使用されるシート。正しい行と色のセルを選択するだけで、この関数はswitchステートメントで使用できる配列にコピーできる文字列を提供します。上記の画像を使用して必要な列番号を取得しました。

function getColumns() 
{ 
    var ss=SpreadsheetApp.getActive(); 
    var sh=ss.getActiveSheet(); 
    var color=ss.getActiveCell().getBackground(); 
    var row=ss.getActiveCell().getRow(); 
    var rg=sh.getDataRange(); 
    var vA=rg.getBackgrounds(); 
    var s=''; 
    var firstTime=true; 
    for(var i=0;i<vA.length;i++) 
    { 
    for(var j=0;j<vA[0].length;j++) 
    { 
     if(i+1==row && vA[i][j]==color) 
     { 
     if(!firstTime){s+=',';} 
     s+=Number(j+1); 
     firstTime=false; 
     } 
    } 
    } 
    s+='<br />For color = ' + color + '<br />Row = ' + row; 
    var userInterface=HtmlService.createHtmlOutput(s); 
    SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Column Numbers'); 
} 
関連する問題