【问题标题】:How do I correctly combine 2 script, so both are onEdit? [duplicate]如何正确组合 2 个脚本,所以两者都是 onEdit? [复制]
【发布时间】:2021-01-30 22:21:53
【问题描述】:

我知道我已经看到了非常相似的问题,但到目前为止我还没有找到适合我遇到的问题。 我最初有 3 个我想组合的脚本。我尝试合并 1(这有一些奇怪的问题,我将在下面讨论 ***),现在有 2 个脚本,我希望它们都由 onEdit 触发,但我似乎无法合并他们正确。我假设的原因可能是由于 2 个脚本的写作方式不同(这也是为什么我到目前为止发现的许多解决方案都没有为我解决它的原因)。

这是 2 个脚本:

这会根据标准创建一个功能复选框

function onEdit(e) {
  if (e.range.getColumn() == 2) {
    var sheet = e.source.getActiveSheet();
    if (e.value === "Tech Note" || 
        e.value === "Intake Process")
      sheet.getRange(e.range.getRow(),3).insertCheckboxes();
    else
      sheet.getRange(e.range.getRow(),3).removeCheckboxes();
  }
}

这个从所有选项卡创建一个打开的操作项的主工作表 ***当我尝试将它对“打开的操作项目”选项卡、A3 和 E3 的“技术”和“摄入”列所做的结合起来时,这个变得很奇怪。它对顶部的一些信息(第 3-5 行)进行排序,然后对底部的“E03-O”表中的信息进行排序(第 51-55 行)。 我尽我所能消除空行,但也无法将其删除。我的工作将是排序,但现在发生了......

function myfunction() {
  
  //set variable
  const masterSheet = "Open Action Items";
  const mastersheetFormulaCell1 = "A3";
  const checkRange2 = "$J3:$J"
  const ss = SpreadsheetApp.getActiveSpreadsheet();


  let formulaArray1 = filteredListOfSheets.map(s => `iferror(FILTER('${s.getSheetName()}'!${dataRange1}, NOT(ISBLANK('${s.getSheetName()}'!${checkRange1}))),{"","",""})`);


  let formulaText1 = "=Sort({" + formulaArray1.join(";") + "},2, false)";
 
  ss.getSheetByName(masterSheet).getRange(mastersheetFormulaCell1).setFormula(formulaText1);

}

Here's an example sheet

非常感谢任何帮助或指导!

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    为什么不直接调用 myfunction();在 onEdit(e) 中

    如果您编写简短的函数并将它们包含在您需要调用它们的函数中,这有助于保持代码的组织性。

    function onEdit(e) {
      if (e.range.getColumn() == 2) {
        myfunction();
        var sheet = e.source.getActiveSheet();
        if (e.value === "Tech Note" || 
            e.value === "Intake Process")
          sheet.getRange(e.range.getRow(),3).insertCheckboxes();
        else
          sheet.getRange(e.range.getRow(),3).removeCheckboxes();
      }
    }
    

    【讨论】:

    • 我放置了您共享的脚本,但它似乎不起作用。不知道我错过了什么。 ://
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多