Google apps script Google工作表:在多个工作表中隐藏行
我试图在多张图纸中隐藏行。我有6张纸,但有4张类似的纸,另一张更可能是4张纸的摘要,另一张是带按钮的纸。这里有一个样本供您参考: 如果我将一个一个地在工作表上放置一个隐藏行按钮,这是可行的,但是由于我需要将它放置在不同的电子表格上,所以这将花费我很多时间。我的想法是在每个电子表格上放置一个按钮,或者在打开它时,空的行将被隐藏。“显示行”按钮可以完美地使用它 以下是我正在使用的脚本: 问题:Google apps script Google工作表:在多个工作表中隐藏行,google-apps-script,google-sheets,row,Google Apps Script,Google Sheets,Row,我试图在多张图纸中隐藏行。我有6张纸,但有4张类似的纸,另一张更可能是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谢谢您的回复。我为你的错误道歉