非常感谢任何帮助。
如果第5行中的单元格大于0,我试图将表单响应转移到另一张表单。我在下面使用的代码将其移动,但将其添加到最后一个包含公式的单元格下。是否有这个代码的修改版本,我可以告诉它忽略单元格中的公式。也只复制行A:E。感谢
function moveToAppropriateSheet(e) {
// assumes source data in sheet named Form Responses 1
// target sheet of move to named TR Requested
// test column with yes/no is col 11 or K
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('Query');
var r = s.getRange(s.getLastRow(),1,1,20);
var data = r.getValues();
if(data[0][4] >0) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Pending");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
targetSheet.getRange(targetSheet.getLastRow()+1,1,1,20).setValues(data);
s.deleteRow(row);
}
};
答案 0 :(得分:0)
根据新资料编辑:
您只想将您在“查询”中复制的行的前5列复制到“待处理”表单。
您在“待定”中已有条目,在F,G,H列中......您希望在A列的最后一个条目下添加复制的行:E
为了简单起见,我还假设您总是复制5列,因此我只能检查A列以找到最后一行(在A:E子集中)。
我还注意到,这基本上是Mogsdad的this answer副本。
如果我的假设是正确的,那么:
function moveToAppropriateSheet(e) {
// assumes source data in sheet named Form Responses 1
// target sheet of move to named TR Requested
// test column with yes/no is col 11 or K
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('Query');
var r = s.getRange(s.getLastRow(),1,1,5); // Change 20 to 5 to copy only cols A:E
var data = r.getValues();
var targetSheet = ss.getSheetByName("Pending");
var lastRowIgnoringFormulae = 0;
var targetSpace = targetSheet.getRange("A:A").getValues();
var lastRow = targetSpace.filter(String).length;
if(data[0][4] >0) {
var row = r.getRow();
var numColumns = s.getLastColumn();
targetSheet.getRange(lastRow+1,1,1,5).setValues(data); // +1 to convert into R1C1 notation
s.deleteRow(row);
}
};
我希望我能帮到你。