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

Hide rows that contain a specific value in a specific column

我需要在固定列(A 列)的单元格中隐藏具有值 "ST" 的行 此函数隐藏第 53 列中包含黑色单元格的行。如何获得不是空白单元格而是具有 "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);
  }
}

}

你只需要改变 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)
        }
    }
}

我认为这对于编译时间会更好,因为 Lastrow/LastColumn 比最大值 rows/columns 更好,您只需要循环具有值的单元格而不是所有单元格

  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);
  }
}
}