adjust oneDit()函数将结果收集到一个选项卡上(而不是单独的选项卡)

问题描述 投票:0回答:0

调整Apps脚本

onEdit()
函数将结果收集到“调度程序”选项卡(而不是单独的“每日”选项卡)是此请求的下一步

点击此处(审查)👉collect onedit multitab触发... Google Sheep“如下图”。

以下应用脚本允许使用ScreenshotonEdit()函数

function onEdit(e) { var sheet = e.source.getActiveSheet(); if (sheet.getName() === "Sun"); var range = e.range; if (range.getColumn() === 9) { var editedRow = range.getRow(); var aTeam = sheet.getRange(editedRow, 10).getDisplayValue(); if (!aTeam) return; var lastRow = sheet.getLastRow(); var empName = sheet.getRange(3, 1, lastRow - 2, 1).getValues(); var targetRow = -1; for (var i = 0; i < empName.length; i++) { if (empName[i][0] === aTeam) { targetRow = i + 3; break; } } if (targetRow !== -1) { var colB = sheet.getRange(targetRow, 2).getDisplayValue(); var colC = sheet.getRange(targetRow, 3).getDisplayValue(); var colD = sheet.getRange(targetRow, 4).getDisplayValue(); if (colB !== colC) { sheet.getRange(targetRow, 4).setValue(colC); } if (colC !== colD) { sheet.getRange(targetRow, 4).setValue(colC); } } } if (range.getColumn() === 13) { var editedRow = range.getRow(); var bTeam = sheet.getRange(editedRow, 14).getDisplayValue(); if (!bTeam) return; var lastRow = sheet.getLastRow(); var empName = sheet.getRange(3, 1, lastRow - 2, 1).getValues(); var targetRow = -1; for (var i = 0; i < empName.length; i++) { if (empName[i][0] === bTeam) { targetRow = i + 3; break; } } if (targetRow !== -1) { var colB = sheet.getRange(targetRow, 2).getDisplayValue(); var colC = sheet.getRange(targetRow, 3).getDisplayValue(); var colD = sheet.getRange(targetRow, 4).getDisplayValue(); if (colB !== colC) { sheet.getRange(targetRow, 4).setValue(colC); } if (colC !== colD) { sheet.getRange(targetRow, 4).setValue(colC); } } } } function onEdit(e) { var sheet = e.source.getActiveSheet(); if (sheet.getName() === "Mon"); var range = e.range; if (range.getColumn() === 9) { var editedRow = range.getRow(); var aTeam = sheet.getRange(editedRow, 10).getDisplayValue(); if (!aTeam) return; var lastRow = sheet.getLastRow(); var empName = sheet.getRange(3, 1, lastRow - 2, 1).getValues(); var targetRow = -1; for (var i = 0; i < empName.length; i++) { if (empName[i][0] === aTeam) { targetRow = i + 3; break; } } if (targetRow !== -1) { var colB = sheet.getRange(targetRow, 2).getDisplayValue(); var colC = sheet.getRange(targetRow, 3).getDisplayValue(); var colD = sheet.getRange(targetRow, 4).getDisplayValue(); if (colB !== colC) { sheet.getRange(targetRow, 4).setValue(colC); } if (colC !== colD) { sheet.getRange(targetRow, 4).setValue(colC); } } } if (range.getColumn() === 13) { var editedRow = range.getRow(); var bTeam = sheet.getRange(editedRow, 14).getDisplayValue(); if (!bTeam) return; var lastRow = sheet.getLastRow(); var empName = sheet.getRange(3, 1, lastRow - 2, 1).getValues(); var targetRow = -1; for (var i = 0; i < empName.length; i++) { if (empName[i][0] === bTeam) { targetRow = i + 3; break; } } if (targetRow !== -1) { var colB = sheet.getRange(targetRow, 2).getDisplayValue(); var colC = sheet.getRange(targetRow, 3).getDisplayValue(); var colD = sheet.getRange(targetRow, 4).getDisplayValue(); if (colB !== colC) { sheet.getRange(targetRow, 4).setValue(colC); } if (colC !== colD) { sheet.getRange(targetRow, 4).setValue(colC); } } } }

there是在每个“每日”选项卡(Mon&Tue)上工作的脚本的gif

如何调整应用程序脚本(对Sun或Mon Tab的I或M列进行编辑时)...

将数据收集到D(太阳或Mon Tab的D列)enter image description here SUN的数据收集到D列D(“调度程序”选项卡的D列)

mon的数据收集到G列(调度程序选项卡的列)

    我是我“手动”做我需要的应用程序脚本要做的一个示例(当在“周一或周二”选项卡上进行编辑时)
  1. 注:值被“粘贴”到''corresporting'
  2. 员工ID的行中 - IE:员工a

调度程序选项卡的标记表(版本)⤵️... gif太小

enter image description here Sun

Sun

Sunmon开始 开始 result手动价值雇员A2:00pm1:00pm1:00pm8:00:00pm7:00:00pm7:00:00pm雇员b3:00pm3:00pm9:00:00pm9:00:00pm雇员c1:00pm1:00pm7:00:00pm7:00:00pm雇员d4:00pm4:00pm6:00:00pm6:00:00pmSUN(TAB)SunSun
mon mon result 手动价值
Sun

名 result手动价值开始时间开始时间SB-Team构造 2:00:00pm yyes1:00:00pm雇员c雇员b yyes4:00:00pm雇员d yyes yyes yyes
开始
team 构造 雇员A 2:00pm 2:00pm
雇员A yyes 雇员b 3:00pm 3:00pm 3:00:00pm
yyes 雇员c 1:00pm 1:00pm
yyes 雇员d 4:00pm 4:00pm
yyes
yyes mon(tab) mon mon mon

开始 开始时间MB-Team构造 yyes7:00:00pm雇员c雇员b yyes6:00:00pm雇员d7:00pm yyes6:00pm yyes yyes 您想将每个“每日”表上的数据填充到“调度程序”。您提出了一个脚本,但对公式方法开放。 this示例示例公式。 Cell B3:电池E3:=map(A3:A6,lambda(staff,query({Mon!A3:D},"select Col2, Col3, Col4 where Col1='"&staff&"'")))这种特定的方法需要一周中的每一天一个公式,但是可以/有可能构建单个公式,以填充一周中的每一天。
result 手动价值 开始时间 M-Team 构造
雇员A 8:00pm 8:00pm 8:00:00pm 雇员A yyes
9:00pm 9:00pm 9:00:00pm 雇员b yyes 雇员c
7:00pm yyes 雇员d 6:00pm
yyes
yyes =map(A3:A6,lambda(staff,query({Sun!A3:D},"select Col2, Col3, Col4 where Col1='"&staff&"'")))
样本输出
google-sheets google-apps-script triggers
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.