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