![](/img/trans.png)
[英]Google Sheets - Update Sheet 1 with data from Sheet 2 if a value on both sheets match
[英]move data from sheet to sheet google sheets
我的工作表正在从表单响应中获取数据。 对于不同的请求类型,我有多个选项卡。 当前,提交表单时,它进入主选项卡,我手动将“状态”列更改为“待分配”列7,并使用以下脚本将其发送到相应的选项卡。 有没有办法使它自动化? 还是随着请求进入而根据第4列(请求类型)中的内容移到选项卡?
function myEdit(e){
var ss = e.source;
var s = ss.getActiveSheet();
var r = e.range;
var actionCol = 7;
var nameCol = 4;
var rowIndex = r.getRowIndex();
var colIndex = r.getColumnIndex();
var colNumber = s.getLastColumn();
if ((e.value == "Pending Assignment" && colIndex == actionCol)) {
var targetSheet = s.getRange(rowIndex, nameCol).getValue();
if (ss.getSheetByName(targetSheet)) {
var targetSheet = ss.getSheetByName(targetSheet);
var targetRange = targetSheet.getRange(targetSheet.getLastRow()+1, 1, 1, colNumber);
var sourceRange = s.getRange(rowIndex, 1, 1, colNumber);
sourceRange.copyTo(targetRange);
s.deleteRow(rowIndex);
}
}
}
可以使用onFormResponse触发器代替onEdit。
function onFormResponse() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formsheet = ss.getSheetByName("Form Responses 1");
var lastrow = formsheet.getLastRow();
var actionCol = 7;
var nameCol = 4;
var colNumber = formsheet.getLastColumn();
formsheet.getRange(lastrow, actionCol).setValue("Pending Assignment");
var targetSheet = s.getRange(lastrow, nameCol).getValue();
if (ss.getSheetByName(targetSheet)) {
var targetSheet = ss.getSheetByName(targetSheet);
var targetRange = targetSheet.getRange(targetSheet.getLastRow()+1, 1, 1, colNumber);
var sourceRange = formsheet.getRange(lastrow, 1, 1, colNumber);
sourceRange.copyTo(targetRange);
formsheet.deleteRow(lastrow);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.