Google 工作表:如果某个单元格为空,则隐藏行
Google Sheets: Hide rows if a certain cell is empty
我现在正在努力在某个单元格为空时隐藏一行。隐藏行的代码有效,但我遇到了问题。这是我正在尝试做的示例电子表格:LINK
如您所见,如果 A 列上没有任何值,它将起作用。
但是当我把一些东西放在 A 列时,它看起来像这样。
下面是隐藏行的代码:
var startRow = 6;
var colToCheck = 2;
function script_HideRows() {
var sheetNames = ["MS_Q1", "MS_Q2", "MS_Q3", "MS_Q4", "SUMMARY"]; // Please set the sheet names here. In this case, 4 sheets are used.
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.getSheets().forEach(sheet => {
var sheetName = sheet.getSheetName();
if (sheetNames.includes(sheetName)) {
if (sheetName == "SUMMARY") { // When the sheet is "SUMMARY", the start row is changed.
startRow = 7;
}
var numRows = sheet.getLastRow();
var elements = sheet.getRange(startRow, colToCheck, numRows).getValues();
for (var i=0; i<(numRows - startRow); i++) {
if (shouldHideRow(sheet, i, elements[i][0])) {
sheet.hideRows(startRow + i);
}
}
// Hide the rest of the rows
var totalNumRows = sheet.getMaxRows();
if (totalNumRows > numRows)
sheet.hideRows(numRows+1, totalNumRows - numRows);
}
});
}
我从这里得到了代码:
我只想隐藏 B 列中所有具有空单元格的行。
希望有人能帮助我。抱歉英语不好。提前致谢!
我认为在您的脚本中,numRows - startRow
可能与 elements
的长度不同。那么在这种情况下,下面的修改呢?
发件人:
for (var i=0; i<(numRows - startRow); i++) {
收件人:
for (var i=0; i < elements.length; i++) {
我现在正在努力在某个单元格为空时隐藏一行。隐藏行的代码有效,但我遇到了问题。这是我正在尝试做的示例电子表格:LINK
如您所见,如果 A 列上没有任何值,它将起作用。
但是当我把一些东西放在 A 列时,它看起来像这样。
下面是隐藏行的代码:
var startRow = 6;
var colToCheck = 2;
function script_HideRows() {
var sheetNames = ["MS_Q1", "MS_Q2", "MS_Q3", "MS_Q4", "SUMMARY"]; // Please set the sheet names here. In this case, 4 sheets are used.
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.getSheets().forEach(sheet => {
var sheetName = sheet.getSheetName();
if (sheetNames.includes(sheetName)) {
if (sheetName == "SUMMARY") { // When the sheet is "SUMMARY", the start row is changed.
startRow = 7;
}
var numRows = sheet.getLastRow();
var elements = sheet.getRange(startRow, colToCheck, numRows).getValues();
for (var i=0; i<(numRows - startRow); i++) {
if (shouldHideRow(sheet, i, elements[i][0])) {
sheet.hideRows(startRow + i);
}
}
// Hide the rest of the rows
var totalNumRows = sheet.getMaxRows();
if (totalNumRows > numRows)
sheet.hideRows(numRows+1, totalNumRows - numRows);
}
});
}
我从这里得到了代码:
我只想隐藏 B 列中所有具有空单元格的行。
希望有人能帮助我。抱歉英语不好。提前致谢!
我认为在您的脚本中,numRows - startRow
可能与 elements
的长度不同。那么在这种情况下,下面的修改呢?
发件人:
for (var i=0; i<(numRows - startRow); i++) {
收件人:
for (var i=0; i < elements.length; i++) {