首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据列中的最大单元格值隐藏一组列

根据列中的最大单元格值隐藏一组列
EN

Stack Overflow用户
提问于 2018-02-19 19:02:51
回答 1查看 92关注 0票数 1

我担心我需要一个脚本来达到这个目的,除非有一种没有脚本的方法来做到这一点。下面链接的文档的脚本编辑器中的脚本尝试失败,可以删除。

我想隐藏不相关的列组(参见每个大小组的较暗边框),具体取决于列H中的最大值。

如果一个批处理的值在H列(包大小的数目)大于1,那么我们希望取消与包大小的数量相关的列组。

  1. 如果有两个包大小,请解隐藏L
  2. 如果有3个包大小,则解隐藏L。
  3. 如果有4个包大小,请解隐藏L
  4. 如果有5个封装尺寸,请解隐藏L
  5. 如果有6个包大小,请解隐藏L
  6. 否则,我们希望隐藏额外的列组(L)。

即使只有一批大于1的批,也可以取消隐藏所有行的列。

电子表格

EN

回答 1

Stack Overflow用户

发布于 2018-05-04 08:44:58

我花了一些时间学习一个小脚本,这就是我最后得到的结果。请注意,在我的脚本示例中,列组略有移动。

代码语言:javascript
运行
复制
function onEdit(e) {

    // Set a comment on the edited cell to indicate when it was changed.
    var range = e.range;
    range.setNote('Last modified: ' + new Date());

    var app = SpreadsheetApp;
    var ss = app.getActiveSpreadsheet();
    var activeSheet = ss.getActiveSheet();

    var clmnwdth = activeSheet.getRange("A4:A12").getValues();
    var maxi = Math.max.apply(Math, clmnwdth);

    Logger.log(maxi); 

    if (maxi == 0) {
        activeSheet.setColumnWidths(5, 20, 10)
    } else if (maxi == 1) {
        activeSheet.setColumnWidths(5, 20, 10)
    } else if (maxi == 2) {
        activeSheet.setColumnWidths(9, 16, 10), activeSheet.setColumnWidths(1, 8, 100)
    } else if (maxi == 3) {
        activeSheet.setColumnWidths(13, 12, 10), activeSheet.setColumnWidths(1, 12, 100)
    } else if (maxi == 4) {
        activeSheet.setColumnWidths(17, 8, 10), activeSheet.setColumnWidths(1, 16, 100)
    } else if (maxi == 5) {
        activeSheet.setColumnWidths(21, 4, 10), activeSheet.setColumnWidths(1, 20, 100)
    } else {
        activeSheet.setColumnWidths(1, 24, 100)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48872609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档