繁体   English   中英

将数据从工作表移动到工作表Google工作表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM