Javascript 在google脚本/工作表中组合3个独立的OneEdit函数

Javascript 在google脚本/工作表中组合3个独立的OneEdit函数,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在寻找解决一个问题,我已经在过去2-3个小时的工作,我认为对许多人来说,这将是相当容易的。我得到了下面的函数,虽然有时有点慢,但效果很好 function onEdit(e) { var sheet = e.source.getActiveSheet() if (sheet.getName() !== 'Team' || e.range.getA1Notation() !== 'D16') return; e.range.offset(0, 0).getValue() === 'Sho

我正在寻找解决一个问题,我已经在过去2-3个小时的工作,我认为对许多人来说,这将是相当容易的。我得到了下面的函数,虽然有时有点慢,但效果很好

function onEdit(e) {
var sheet = e.source.getActiveSheet()
if (sheet.getName() !== 'Team' || e.range.getA1Notation() !== 'D16') return; 
  e.range.offset(0, 0).getValue() === 'Show' ? sheet.showRows(17, 7) : sheet.hideRows(17, 7)
然而,我得到了两个几乎相同的函数,我需要同时运行。即

二号

三号

我试图让所有3个单独工作:

  • 只需将所有3项相加即可
  • 使用不同的函数名添加所有3个
  • 在同一代码(函数)中添加多个ifs(不确定是否正确,因为它不起作用)
  • 关于1和2

  • 只需将所有3项相加即可
  • 这不起作用,因为函数使用相同的名称。只运行最后一个

  • 使用不同的函数名添加所有3个 这可能会起作用,但要由一个简单的on-edit触发器触发,它们需要由名为onEdit(e)的函数调用。范例
  • 关于1和2

  • 只需将所有3项相加即可
  • 这不起作用,因为函数使用相同的名称。只运行最后一个

  • 使用不同的函数名添加所有3个 这可能会起作用,但要由一个简单的on-edit触发器触发,它们需要由名为onEdit(e)的函数调用。范例

  • 您还可以将三个脚本“合并”为一个脚本。试试这样的

    function onEdit(e) {
    var sheet, cells, rows, ind;
    sheet = e.source.getActiveSheet();
    cells = ['D16', 'D25', 'D37'];
    rows = [[17, 7], [26, 10], [38, 10]];
    ind = cells.indexOf(e.range.getA1Notation());
    if (sheet.getName() !== 'Team' || ind == -1) return;
    e.value === 'Show' ? sheet.showRows(rows[ind][0], rows[ind][1]) : sheet.hideRows(rows[ind][0], rows[ind][1])
    }
    

    看看这是否有效

    您还可以将三个脚本“合并”为一个脚本。试试这样的

    function onEdit(e) {
    var sheet, cells, rows, ind;
    sheet = e.source.getActiveSheet();
    cells = ['D16', 'D25', 'D37'];
    rows = [[17, 7], [26, 10], [38, 10]];
    ind = cells.indexOf(e.range.getA1Notation());
    if (sheet.getName() !== 'Team' || ind == -1) return;
    e.value === 'Show' ? sheet.showRows(rows[ind][0], rows[ind][1]) : sheet.hideRows(rows[ind][0], rows[ind][1])
    }
    

    看看这是否有效

    关于第3个,请添加一个。关于第3个,请添加一个。我还将注意,如果您不关心先运行哪个函数,您可以添加3个可安装的触发器,它们都由
    onEdit
    触发。否则,这个答案是最容易实现的。似乎你总是有相同的
    !='团队“
    但唯一的区别是活动单元格。您可能只想使用一个
    开关
    ,您可以在上面阅读。我还将注意到,如果您不关心先运行哪个函数,您可以添加3个可安装的触发器,它们都由
    onEdit
    触发。否则,这个答案是最容易实现的。似乎你总是有相同的
    !='团队“
    但唯一的区别是活动单元格。您可能只想使用一个
    开关
    ,您可以在上面阅读
    function onEdit(e){
      myFunction1();
      myFunction2();
      myFunction3();
    }
    
    function onEdit(e) {
    var sheet, cells, rows, ind;
    sheet = e.source.getActiveSheet();
    cells = ['D16', 'D25', 'D37'];
    rows = [[17, 7], [26, 10], [38, 10]];
    ind = cells.indexOf(e.range.getA1Notation());
    if (sheet.getName() !== 'Team' || ind == -1) return;
    e.value === 'Show' ? sheet.showRows(rows[ind][0], rows[ind][1]) : sheet.hideRows(rows[ind][0], rows[ind][1])
    }