我想在 google 工作表中显示/隐藏带有宏的行
I want to show / hide rows with macros in google sheets
/* 我想要使用宏的代码来隐藏和显示多列,但使用相同的按钮。但是,它没有给出预期的结果。我需要你的帮助。
*/
function Show_Hide() {
var spreadsheet = SpreadsheetApp.getActive();
var status = 1;
function Show() {
spreadsheet.getActiveSheet().getColumnGroup(3, 1).expand();
status = 1;
};
function Hide() {
spreadsheet.getActiveSheet().getColumnGroup(3, 1).collapse();
status = 0;
};
if (status==1){
Hide();
} else{
Show();
}
}
您的代码中的错误是您将 status
设置为 1
,然后检查它是否等于 1
。 (按此逻辑它将始终等于 1
)。
相反,
Show/Hide 分组列:
function ShowHide() {
const targetGroup = SpreadsheetApp.getActive()
.getActiveSheet()
.getColumnGroup(3, 1)
return (targetGroup.isCollapsed())
? targetGroup.expand()
: targetGroup.collapse()
}
这将检查指定的列组是否 .isCollapsed()
,如果是,将展开,否则将折叠。
了解更多:
Show/Hide 分组 & Non-Grouped 列:
function ShowHide() {
const sheet = SpreadsheetApp.getActive().getActiveSheet()
const colStart = 3 // "C"
const numOfCols = 8 // "C" => "J"
try {
if (sheet.getColumnGroup(colStart, 1)) {
return (targetGroup.isCollapsed())
? targetGroup.expand()
: targetGroup.collapse()
}
} catch (e) {
return (sheet.isColumnHiddenByUser(colStart))
? sheet.showColumns(colStart, numOfCols)
: sheet.hideColumns(colStart, numOfCols)
}
}
/* 我想要使用宏的代码来隐藏和显示多列,但使用相同的按钮。但是,它没有给出预期的结果。我需要你的帮助。 */
function Show_Hide() {
var spreadsheet = SpreadsheetApp.getActive();
var status = 1;
function Show() {
spreadsheet.getActiveSheet().getColumnGroup(3, 1).expand();
status = 1;
};
function Hide() {
spreadsheet.getActiveSheet().getColumnGroup(3, 1).collapse();
status = 0;
};
if (status==1){
Hide();
} else{
Show();
}
}
您的代码中的错误是您将 status
设置为 1
,然后检查它是否等于 1
。 (按此逻辑它将始终等于 1
)。
相反,
Show/Hide 分组列:
function ShowHide() {
const targetGroup = SpreadsheetApp.getActive()
.getActiveSheet()
.getColumnGroup(3, 1)
return (targetGroup.isCollapsed())
? targetGroup.expand()
: targetGroup.collapse()
}
这将检查指定的列组是否 .isCollapsed()
,如果是,将展开,否则将折叠。
了解更多:
Show/Hide 分组 & Non-Grouped 列:
function ShowHide() {
const sheet = SpreadsheetApp.getActive().getActiveSheet()
const colStart = 3 // "C"
const numOfCols = 8 // "C" => "J"
try {
if (sheet.getColumnGroup(colStart, 1)) {
return (targetGroup.isCollapsed())
? targetGroup.expand()
: targetGroup.collapse()
}
} catch (e) {
return (sheet.isColumnHiddenByUser(colStart))
? sheet.showColumns(colStart, numOfCols)
: sheet.hideColumns(colStart, numOfCols)
}
}