Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google工作表:在多个工作表中隐藏行_Google Apps Script_Google Sheets_Row - Fatal编程技术网

Google apps script Google工作表:在多个工作表中隐藏行

Google apps script Google工作表:在多个工作表中隐藏行,google-apps-script,google-sheets,row,Google Apps Script,Google Sheets,Row,我试图在多张图纸中隐藏行。我有6张纸,但有4张类似的纸,另一张更可能是4张纸的摘要,另一张是带按钮的纸。这里有一个样本供您参考: 如果我将一个一个地在工作表上放置一个隐藏行按钮,这是可行的,但是由于我需要将它放置在不同的电子表格上,所以这将花费我很多时间。我的想法是在每个电子表格上放置一个按钮,或者在打开它时,空的行将被隐藏。“显示行”按钮可以完美地使用它 以下是我正在使用的脚本: 问题: 使用类似模板隐藏多个图纸上的行 汇总表行应与4张表(不同行)一起隐藏 我希望有人能帮助我。提前谢谢你

我试图在多张图纸中隐藏行。我有6张纸,但有4张类似的纸,另一张更可能是4张纸的摘要,另一张是带按钮的纸。这里有一个样本供您参考:

如果我将一个一个地在工作表上放置一个隐藏行按钮,这是可行的,但是由于我需要将它放置在不同的电子表格上,所以这将花费我很多时间。我的想法是在每个电子表格上放置一个按钮,或者在打开它时,空的行将被隐藏。“显示行”按钮可以完美地使用它

以下是我正在使用的脚本:

问题:

  • 使用类似模板隐藏多个图纸上的行
  • 汇总表行应与4张表(不同行)一起隐藏

我希望有人能帮助我。提前谢谢你

我相信你的目标如下

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);
    }
  });
}
  • 使用您的脚本,您希望在单击按钮时为Google电子表格中的几个工作表运行脚本。
    • 在示例电子表格中,您希望为
      “MS_Q1”、“MS_Q2”、“MS_Q3”、“MS_Q4”、“SUMMARY”等工作表运行脚本
    • 对于“汇总”表,起始行与其他行不同。是
      7
修改点:
  • 在本例中,例如,我建议修改函数
    script\u HideRows
  • 首先,设置要运行脚本的工作表名称。然后,使用工作表名称运行脚本
当上述各点反映到脚本中时,它将变成如下所示

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);
    }
  });
}
修改脚本: 请修改的
脚本\u HideRows
,如下所示

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);
    }
  });
}
函数脚本_HideRows(){
var sheetNames=[“MS_Q1”、“MS_Q2”、“MS_Q3”、“MS_Q4”、“SUMMARY”];//请在此处设置工作表名称。在这种情况下,使用4张工作表。
var ss=SpreadsheetApp.getActiveSpreadsheet();
ss.getSheets().forEach(sheet=>{
var sheetName=sheet.getSheetName();
if(图纸名称。包括(图纸名称)){
如果(sheetName==“SUMMARY”){//当工作表为“SUMMARY”时,起始行将更改。
startRow=7;
}
var numRows=sheet.getLastRow();
var elements=sheet.getRange(startRow、colToCheck、numRows).getValues();
对于(变量i=0;i numRows)
表.隐藏窗口(numRows+1,总计numRows-numRows);
}
});
}
注:
  • 如果即使在复制和粘贴上述脚本时脚本也未更改,请将Web应用重新部署为新版本
参考资料:

    • 我相信你的目标如下

      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);
          }
        });
      }
      
      • 使用您的脚本,您希望在单击按钮时为Google电子表格中的几个工作表运行脚本。
        • 在示例电子表格中,您希望为
          “MS_Q1”、“MS_Q2”、“MS_Q3”、“MS_Q4”、“SUMMARY”等工作表运行脚本
        • 对于“汇总”表,起始行与其他行不同。是
          7
      修改点:
      • 在本例中,例如,我建议修改函数
        script\u HideRows
      • 首先,设置要运行脚本的工作表名称。然后,使用工作表名称运行脚本
      当上述各点反映到脚本中时,它将变成如下所示

      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);
          }
        });
      }
      
      修改脚本: 请修改的
      脚本\u HideRows
      ,如下所示

      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);
          }
        });
      }
      
      函数脚本_HideRows(){
      var sheetNames=[“MS_Q1”、“MS_Q2”、“MS_Q3”、“MS_Q4”、“SUMMARY”];//请在此处设置工作表名称。在这种情况下,使用4张工作表。
      var ss=SpreadsheetApp.getActiveSpreadsheet();
      ss.getSheets().forEach(sheet=>{
      var sheetName=sheet.getSheetName();
      if(图纸名称。包括(图纸名称)){
      如果(sheetName==“SUMMARY”){//当工作表为“SUMMARY”时,起始行将更改。
      startRow=7;
      }
      var numRows=sheet.getLastRow();
      var elements=sheet.getRange(startRow、colToCheck、numRows).getValues();
      对于(变量i=0;i numRows)
      表.隐藏窗口(numRows+1,总计numRows-numRows);
      }
      });
      }
      
      注:
      • 如果即使在复制和粘贴上述脚本时脚本也未更改,请将Web应用重新部署为新版本
      参考资料:

      关于
      “MS_Q1”、“MS_Q2”、“MS_Q3”、“MS_Q4”
      的页,隐藏行是相同的。我的理解正确吗?和。我可以问一下
      汇总表的
      不相同行
      的详细信息吗?行应与4张表(不相同行)一起隐藏
      ?@Tanaike是的,这是正确的。摘要表以不同的行开始,但我希望在单击“隐藏行”按钮时也将其隐藏。谢谢您的回复。从你的回复中,我提出了一个修改后的脚本作为答案。你能确认一下吗?如果我误解了你的问题,我道歉。@Tanaike这有点奏效,但有个问题。第9行和第10行在Q1、Q2、Q3和Q4上不隐藏。我编辑了示例工作表以供您查看。关于
      “MS_Q1”、“MS_Q2”、“MS_Q3”、“MS_Q4”
      的工作表,隐藏行是相同的。我的理解正确吗?和。我可以问一下
      汇总表的
      不相同行
      的详细信息吗?行应与4张表(不相同行)一起隐藏
      ?@Tanaike是的,这是正确的。摘要表以不同的行开始,但我希望在单击“隐藏行”按钮时也将其隐藏。谢谢您的回复。从你的回复中,我提出了一个修改后的脚本作为答案。你能确认一下吗?如果我误解了你的问题,我道歉。@Tanaike这有点奏效,但有个问题。第9行和第10行在Q1、Q2、Q3和Q4上不隐藏。我编辑了样本表让你看。它有点工作,但有一个问题。第9行和第10行在Q1、Q2、Q3和Q4上不隐藏。我编辑了样本表供您查看。@user6729785谢谢您的回复。我为你的错误道歉