【问题标题】:Hide Rows Based on Content of a Cell -issue with onEdit-根据单元格内容隐藏行 - 使用 onEdit- 问题
【发布时间】:2015-09-04 14:01:10
【问题描述】:

我正在尝试编辑脚本,但遇到了一些问题:

function onEdit(e) {
  Logger.log('e.value: ' + e.value);

  var cellEdited = e.range.getA1Notation();
  Logger.log('cellEdited: ' + cellEdited);

  if (cellEdited === "A10" && e.value !== "CTR") {

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var theSheet = ss.getActiveSheet();

    theSheet.hideRows(12, 2);
  };
   if (cellEdited === "A10" && e.value === "CTR") {

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var theSheet = ss.getActiveSheet();

    theSheet.showRows(12, 2);
     }
}

从帖子中可以看出,我的目的是根据单元格 A10 中的输入隐藏第 12 行和第 13 行。仅当 A10 为“CTR”时,第 12 行和第 13 行才可见

我的问题是 A10 充满了 vlookup 函数,根据我当前使用脚本的结果,似乎函数“onedit”不是由 vlookup 的更改触发的。

所以我希望你们能帮助我解决 2 个解决方案中的 1 个。
1 让它检查单元格 a10,即使它被公式更改了。
2. 由于单元格 B10 的个人更改“编辑”(B10 与 B10&C10&E10 合并),vlookup 正在更改,所以我认为脚本可以更改为编辑 B10 但要检查内容 A10?

此外,我如何将其指定为不是活动工作表而是一个特定工作表?

【问题讨论】:

    标签: javascript google-apps-script google-sheets


    【解决方案1】:

    看看这是否有效(但首先将 Sheetname 替换为您希望脚本处理的工作表/选项卡的名称)。

    function onEdit(e) {
    var sheet = e.source.getActiveSheet()
    if (sheet.getName() !== 'Sheetname' || e.range.getA1Notation() !== 'B10') return;
    e.range.offset(0, -1).getValue() === 'CTR' ? sheet.showRows(12, 2) : sheet.hideRows(12, 2)
    }
    

    【讨论】:

    • 必须进行一些测试,但到目前为止它就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 2015-05-21
    • 2016-01-11
    • 2018-11-04
    • 2015-01-17
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多