如何将数字传递给.hideRow()? [英] How do I pass a number to .hideRow()?

查看:50
本文介绍了如何将数字传递给.hideRow()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从.

您的代码可以像这样简化:

 函数hideRowsWithYes(){var sheet = SpreadsheetApp.getActiveSheet();var values = sheet.getDataRange().getValues();for(var i = 0; i< values.length; i ++){if(values [i] [0] =='是'){sheet.hideRows(1 + i);}}} 

与往常一样,自动完成功能使工作更加轻松...


编辑以下评论:

要取消隐藏行,我们没有行索引的简单方法,因此我们需要定义范围...代码如下( i 具有 +1 ,因为值是一个从0开始的数组,而 sheets 的索引是从1开始的索引)

  function unHideRows(){var sheet = SpreadsheetApp.getActiveSheet();var values = sheet.getDataRange().getValues();var row;var maxCol = sheet.getMaxColumns();for(var i = 0; i< values.length; i ++){if(values [i] [0] =='是'){行= sheet.getRange(1 + i,1,1,maxCol);sheet.unhideRow(row);}}} 

I got the following script from @Mike Grace's website:

// Deletes rows in the active spreadsheet that contain 'Yes' in column A
function readRows() { 
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var rows = sheet.getDataRange(); 
  var numRows = rows.getNumRows(); 
  var values = rows.getValues(); 

  var rowsDeleted = 0; 
  for (var i = 0; i <= numRows - 1; i++) { 
    var row = values[i];
    if (row[0] == 'Yes') { 
      sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++; 
    } 
  } 
}

The script works well, but I would like to make a change to it, instead of calling .deleteRow() I want to use .hideRow() instead.

Because the .hideRow() method only accepts a range as far as I understand, I'm getting the following error:

How do I modify this script so that it hides the row instead of deleting them?

解决方案

there are different hideRow / s () methods, one of them takes a row number as argument.

your code can be simplified like this :

function hideRowsWithYes() { 
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var values = sheet.getDataRange().getValues(); 

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

As usual, autocomplete makes the job easier...


Edit following comment :

to unhide row we don't have a simple method with row index so we need to define the range... code goes like this (i has a +1 because values is an array that starts from 0 while sheets are indexed from 1)

function unHideRows() { 
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var values = sheet.getDataRange().getValues(); 
  var row;
  var maxCol = sheet.getMaxColumns();
  for (var i = 0; i < values.length; i++) { 
    if (values[i][0] == 'Yes') { 
      row = sheet.getRange(1+i, 1, 1, maxCol);
      sheet.unhideRow(row);
    } 
  } 
}

这篇关于如何将数字传递给.hideRow()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆