Google apps script 是否将表格响应中的行数据复制到可编辑的工作表?

Google apps script 是否将表格响应中的行数据复制到可编辑的工作表?,google-apps-script,eventtrigger,mirror,Google Apps Script,Eventtrigger,Mirror,我对应用程序脚本、java以及我已经自学了大约一周的任何代码都是新手,所以请耐心听我说。 这是我的最终目标和我正在努力实现的目标。 我设置了一个表单,这样当我的团队接到电话时,就可以简单地输入客户数据,然后将这些数据转储到表单响应表中。然后,我希望将该数据传输到主控表,保留表单中的原始数据原封不动。 从主控表中,我需要6张可以过滤、重新排列、添加和编辑数据的子集数据表,以便编辑也可以更新主控表 换句话说,我希望每个团队成员都有一个按现场服务组筛选的选项卡。每个团队成员都需要能够在各自的工作表上重

我对应用程序脚本、java以及我已经自学了大约一周的任何代码都是新手,所以请耐心听我说。 这是我的最终目标和我正在努力实现的目标。 我设置了一个表单,这样当我的团队接到电话时,就可以简单地输入客户数据,然后将这些数据转储到表单响应表中。然后,我希望将该数据传输到主控表,保留表单中的原始数据原封不动。
从主控表中,我需要6张可以过滤、重新排列、添加和编辑数据的子集数据表,以便编辑也可以更新主控表

换句话说,我希望每个团队成员都有一个按现场服务组筛选的选项卡。每个团队成员都需要能够在各自的工作表上重新排列列、排序过滤器和编辑。当进行这些更改时,主控表上的数据也应随之更新

我所完成的…一旦WO状态设置为“已开票”,该行应移动到存档表并从主列表中删除。如果必须重新打开WO,我还需要选择将存档行移回主工作表。 到目前为止,我已经成功地提出了以下代码,该代码基于用户定义的条件(如“打开”、“完成”或“完成”)在工作表之间移动行……这似乎工作得很好,尽管可能有更优雅或高效的方法来完成

下面的状态更改功能在我的测试中似乎运行良好。onformsubmit函数是我正在努力解决的问题

     function onEdit(e) {//"e" receives the event object
  var range = e.range;//The range of cells edited

  var columnOfCellEdited = range.getColumn();//Get column number


    enter code here

  if (columnOfCellEdited === 6) {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = e.source.getActiveSheet();
  var r = e.source.getActiveRange();
  var C = 6 // column A=1, B=2, C=3, etc.
  var V1 = "Open" //Variable #1 user defined
  var V2 = "Review"
  var V3 = "Invoiced"
  var TS1= "Open"    //target sheet 1 name
  var TS2= "Review"  //target sheet 2 name
  var TS3= "Invoiced"    //target sheet 3 name
  var SS1 = "Test Work order Tracker"




  if(ss.getName() == SS1 && r.getColumn() == C && r.getValue() == V3 ) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName(TS3);
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
  else if(ss.getName() == SS1 && r.getColumn() == C && r.getValue() == V2 ){
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName(TS2);
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
   else{
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName(TS1);
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}
}


    // set up on form submit trigger to copy data to masterlist
        function onFormSubmit(e)

      var responses = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Open");
      var masterList =  SpreadsheetApp.openById('1TOj72oc3Lboku0IvhsgHFi0utKG8rIZqT7IFlsKion4').getSheetByName("OriginResponse");
      var lastrow = responses.getLastRow();
      var col = responses.getLastColumn();
      var row = responses.getRange(lastrow, 1, 1, col).getValues();

      masterList.appendRow(row[0]);

嘿,@wtflick007欢迎来到Stackoverflow!你能再描述一下你的问题吗?您尝试了什么(onFormSubmit函数),遇到了什么错误/问题?你想用这个功能实现什么?RegardsThere's no method
getSpreadsheetByName
您想使用
open()
-如果您想按名称打开,则没有帮助,但此主题会很有帮助:。@WTslick007您解决了问题吗?是的,我解决了。。。非常感谢你的建议。我已编辑代码以反映所做的更改。但是,我对onedit函数有问题。如果我使用测试数据,并且在审核和开票表之间使用,那么它的工作是完美的,但是实际的表单响应不会移动。知道为什么吗?