2013-05-15 61 views
0

我每次嘗試此操作時都會收到錯誤,這是我正在使用的。我得到這個錯誤:我想根據第1行中單元格中的值隱藏每張表中的列。

TypeError: Cannot find function hideColumns in object Sheet,Sheet,Sheet,Sheet,Sheet." 

我不是很熟悉腳本,似乎無法得到這個工作。

function Hide() { 
    // get active spreadsheet 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 

    // look at all sheets 
    var sheet = ss.getSheets(); 

    // get data 
    var data = ss.getDataRange(); 

    // get number of columns 
    var lastCol = data.getLastColumn()+1; 

    Logger.log(lastCol); 

    // itterate through columns 
    for(var i=1; i<lastCol; i++) { 
    if(data.getCell(1, i).getValue()[0] == '*') { 
     sheet.hideColumns(i); 
    } 
    } 
} 

有人能幫助我嗎?

回答

0

我假設你正在使用this reference。我猜想,您需要執行以下操作:

  1. 迭代數據範圍中的所有列。
  2. 如果第一列的值等於*,則隱藏該列。

我不熟悉與谷歌Apps服務的,但我覺得你的代碼應該是這樣的:

function Hide() { 
    // get active spreadsheet 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 

    // look at all sheets 
    //var sheet = ss.getSheets(); 

    // get data 
    var data = ss.getDataRange(); 

    //get the sheet this range belongs to. 
    var sheet = data.getSheet(); 

    // get number of columns 
    var lastCol = data.getLastColumn()+1; 

    Logger.log(lastCol); 

    // itterate through columns 
    for(var i=1; i<lastCol; i++) { 
    if(data.getCell(1, i).getValue()[0] == '*') { 
     sheet.hideColumns(i); 
    } 
    } 
} 

由於.getSheets返回陣列Sheet對象不能調用該函數。

相關問題