【发布时间】: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);
}
非常感谢任何帮助或指导!
【问题讨论】:
标签: google-apps-script google-sheets