取消隐藏工作表的所有单元格(包括空列和行)
Unhide all the cells (including empty columns and rows) of a worksheet
我想取消隐藏工作表的所有单元格。我尝试以下代码:
function unhideSheet (sheetName) {
return Excel.run(function (ctx) {
var sheet = ctx.workbook.worksheets.getItem(sheetNames[i]);
sheet.visibility = "Visible";
sheet.getUsedRange().columnHidden = false;
sheet.getUsedRange().rowHidden = false;
return ctx.sync();
});
}
问题是getUsedRange
没有覆盖隐藏的空列或行。因此,该函数不会取消隐藏这些隐藏的空列或行。
有谁知道是否可以获取整个工作表的范围,以便我们可以取消隐藏所有内容?
编辑 1:
我已经计算出工作表中的行数是1048576
(在线Excel)。奇怪的是 sheet.getRange("1:20").rowHidden = false
运行良好,而 sheet.getRange("1:1048576").rowHidden = false
引发错误 This operation is not permitted for the current object
。是不是范围太大了?
我发现 sheet.getRange("1:1048575").rowHidden = false
有效。
要获取 sheet 的整个范围,请使用 sheet.getRange(),就像这样,不指定任何参数。有用吗?
我想取消隐藏工作表的所有单元格。我尝试以下代码:
function unhideSheet (sheetName) {
return Excel.run(function (ctx) {
var sheet = ctx.workbook.worksheets.getItem(sheetNames[i]);
sheet.visibility = "Visible";
sheet.getUsedRange().columnHidden = false;
sheet.getUsedRange().rowHidden = false;
return ctx.sync();
});
}
问题是getUsedRange
没有覆盖隐藏的空列或行。因此,该函数不会取消隐藏这些隐藏的空列或行。
有谁知道是否可以获取整个工作表的范围,以便我们可以取消隐藏所有内容?
编辑 1:
我已经计算出工作表中的行数是1048576
(在线Excel)。奇怪的是 sheet.getRange("1:20").rowHidden = false
运行良好,而 sheet.getRange("1:1048576").rowHidden = false
引发错误 This operation is not permitted for the current object
。是不是范围太大了?
我发现 sheet.getRange("1:1048575").rowHidden = false
有效。
要获取 sheet 的整个范围,请使用 sheet.getRange(),就像这样,不指定任何参数。有用吗?