隐藏在特定列中包含特定值的行

时间:2017-08-26 12:28:54

标签: google-apps-script google-spreadsheet-api

我需要隐藏有价值的行" ST"在固定柱的单元格中(A列) 这个函数隐藏了第53列中包含黑色单元格的行。我怎样才能得到空白单元格而不是单元格#34; ST"值?

function nascondiRighe() {

// This hides rows with blank cells    
var sheet = SpreadsheetApp.getActive().getSheetByName("VT.Attivita"); 
var lastRow=sheet.getMaxRows();
var lastColumn=sheet.getMaxColumns();
var range=sheet.getRange(1, 53, lastRow, 1);
var data=range.getValues();
for(var i=0;i<data.length;i++)
{
  if(!data[i][0])
  {
   sheet.hideRow(range);
  }
}

}

2 个答案:

答案 0 :(得分:2)

我认为这对于编译时间会更好,因为Lastrow / LastColumn比最大行数/列更好,你只需要为值不是所有单元格的单元格循环

  function nascondiRighe() {

// This hides rows with 'ST' cells    
var sheet = SpreadsheetApp.getActive().getSheetByName("VT.Attivita"); 
var lastRow=sheet.getLastRow();
var arr=sheet.getRange(1,53,lastRow,1).getValues();

for(var i=0;i<arr.length;i++)
{
  if(arr[i][0]==='ST')
  {
   sheet.hideRows(i+1);
  }
}
}

答案 1 :(得分:1)

您只需要更改if循环。

function nascondiRighe() {
    // This hides rows with blank cells    
    var sheet = SpreadsheetApp.getActive().getSheetByName("VT.Attivita");
    var lastRow = sheet.getMaxRows();
    var lastColumn = sheet.getMaxColumns();
    var range = sheet.getRange(1, 53, lastRow, 1);
    var data = range.getValues();
    for (var i = 0; i < data.length; i++) {
        if (data[i][0] == "ST") {
            sheet.hideRows(i + 1)
        }
    }
}