![](/img/trans.png)
[英]Google Sheets Copying and Pasting from one sheet to another based on cell value
[英]Google Apps Script Copying a column in one sheet, transposing it, then pasting to another
我有一个在表单模板中设置的工作表,在A列中有数据提示,例如Name,ID#等,在B列中输入了实际数据。我创建了一个标有“提交表单”的按钮链接到脚本。 我希望此脚本实现的是仅复制B列中特定范围内的数据,然后将这些数据粘贴到新工作表的下一个空行中,以创建一种表单响应的数据库。 还将清除原始工作表B列中的数据。
我已经有一种方法可以清除原始工作表中的选定范围,也可以将选定范围复制到新工作表中,同时自动从第一行开始。 但是,我在转换数据时遇到了麻烦,因为它像原始数据一样粘贴到列中,而不是粘贴到行中。
function submitForm() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("RMA");
var sheet2 = ss.getSheetByName('RMA Database');
var values = sheet2.getRange("A:A").getValues();
var maxIndex = values.reduce(function(maxIndex, row, index) {
return row[0] === "" ? maxIndex : index;
}, 0);
sheet2.setActiveRange(sheet2.getRange(maxIndex + 2, 1))
sheet1.getRange("B5:B25").copyTo(sheet2.getRange(sheet2.getLastRow()+1,1),
{contentsOnly:true});
sheet1.getRange('B5:B25').clearContent();
}
尝试这个:
我看不到这条线的意义var values = sheet2.getRange("A:A").getValues();
所以我省略了
function runOne() {
var ss = SpreadsheetApp.getActive();
var sheet1 = ss.getSheetByName("RMA");
var sheet2 = ss.getSheetByName('RMA Database');
var vA=sheet1.getRange("B5:B25").getValues().map(function(r){return r[0]});
sheet2.appendRow(vA);
sheet1.getRange('B5:B25').clearContent();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.