如何将数字传递给.hideRow()? [英] How do I pass a number to .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屋!