这里非常业余,所以请忍受我。
我正在创建一个包含4张纸的工作簿。该工作表将填充另一个工作表中的数据,并包含名称。
某些值在首次加载时将为空,因此我希望不显示具有空值的行。
我的计划是对它进行编码,以使其在打开时会取消隐藏所有数据,然后对其进行编码以找出存在空白的地方并隐藏该行。
我使用了以下代码:
function unHideColumn(y7)
{
var s = ss.getSheetByName("Year 7");
var columnRange = s.getRange("A:A");
var datarange = s.unhideColumn(columnRange);
}
function onOpen(y7) {
var a = SpreadsheetApp.getActive().getSheetByName('YEAR 7');
a.showRows(1, a.getMaxRows());
a.getRange('A:A')
.getValues()
.forEach( function (r, i) {
if (r[0] == '')
a.hideRows(i + 1);
});
}
这在第一张纸上获得了预期的结果,但还有3张其他纸。如果我再次使用相同的代码使用不同的工作表名称,则无法使用。
您可以通过循环遍历数组来为电子表格文件中的每个工作表执行代码:ss.getSheets()
forEach()
function unHideColumn(y7)
{
var s = ss.getSheetByName("Year 7");
var columnRange = s.getRange("A:A");
var datarange = s.unhideColumn(columnRange);
}
function onOpen(y7) {
var ss = SpreadsheetApp.getActive();
var sheets = ss.getSheets();
sheets.forEach(a=>{
a.showRows(1, a.getMaxRows());
a.getRange('A:A')
.getValues()
.forEach( function (r, i) {
if (r[0] == '')
a.hideRows(i + 1);
})});
}
如果要根据特定工作表的名称执行代码,请尝试以下操作:
function unHideColumn(y7)
{
var s = ss.getSheetByName("Year 7");
var columnRange = s.getRange("A:A");
var datarange = s.unhideColumn(columnRange);
}
function onOpen(y7) {
var ss = SpreadsheetApp.getActive();
var sheets = ['Sheet1','Sheet4']; // choose specific sheets
sheets.forEach(sh=>{
var a = ss.getSheetByName(sh);
a.showRows(1, a.getMaxRows());
a.getRange('A:A')
.getValues()
.forEach( function (r, i) {
if (r[0] == '')
a.hideRows(i + 1);
})});
}
例如,将仅对'Sheet1'
和执行此操作'Sheet4'
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句