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

这里非常业余,所以请耐心等待。


我正在创建一个包含 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 张其他纸。如果我使用不同的工作表名称再次使用相同的代码,它将不起作用。


慕容708150
浏览 100回答 1
1回答

一只萌萌小番薯

您可以通过循环迭代数组来为电子表格文件中的每个工作表执行代码: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'。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript