为了账号安全,请及时绑定邮箱和手机立即绑定

隐藏和取消隐藏列 - Google 表格

隐藏和取消隐藏列 - Google 表格

慕容708150 2023-03-18 11:08:34
这里非常业余,所以请耐心等待。我正在创建一个包含 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 张其他纸。如果我使用不同的工作表名称再次使用相同的代码,它将不起作用。
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

您可以通过循环迭代数组来为电子表格文件中的每个工作表执行代码: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'。


查看完整回答
反对 回复 2023-03-18
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信