2017-08-06 105 views
-1

我是新手腳本,正在尋找一些幫助。我在這個話題上看到了一些其他的線索,但是他們比我的腦袋有點兒過頭了。Google表格腳本隱藏列

我需要一個腳本來隱藏基於單元格內容的某些列(BB5)。

示例: 如果BB5 = 3隱藏J-K,AJ-AM,AV和BA列。 如果BB5 = 2隱藏列H-K,AF-AM,AU-AV和AZ-BA。

任何幫助將不勝感激。

謝謝, 羅尼

回答

0

隱藏列BB5基於值

示例:如果BB5 = 3隱藏列J-K,AJ-AM,AV,和BA。如果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'); 
}