[英]Google Appscript: Copy Data from a Form Sheet to Another Sheet in Last Row and Clear Form
试图让 Appscript 运行,但我似乎无法弄清楚最后几个步骤。
背景:我有一个带有两个选项卡的 Google 表格,#1 称为“数据表单”,它包含一个可填写的表单以捕获交易信息,然后将其输入到名为“已发布交易”的选项卡 #2 中。 这是个人预算电子表格..
无论如何,下面的脚本旨在获取“数据表单”上输入的信息,根据A列是否有任何数据来验证“已发布交易”选项卡上最后一行的数据。 (为了进一步澄清,“已发布交易”选项卡在 GI 列中有公式,这禁止我使用简单的“查找最后一行”脚本。)
正如现在所写的那样,我收到一条错误消息“异常:数据中的列数与范围内的列数不匹配。数据有 6,但范围有 1。RecordNewTransaction @ Code.gs:24”
有什么建议可以使它正常工作吗?
更新:
var dataRange = datasheet.getRange(lastRow+1,1,1,datasheet.getLastColumn()-3);
经过多次尝试和错误尝试,我需要编辑上面显示的行。 当前和完整脚本现在按预期执行,如下所示。 还显示了我试图完成的图像片段以供参考。
function RecordNewTransaction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Data Form"); //Form Sheet
var datasheet = ss.getSheetByName("Posted Transactions"); //Data
//Input Values
var values = [[formSS.getRange("B4").getValue(),
formSS.getRange("B6").getValue(),
formSS.getRange("B8").getValue(),
formSS.getRange("B10").getValue(),
formSS.getRange("B12").getValue(),
formSS.getRange("B14").getValue()]];
var columnToCheck = datasheet.getRange("A:A").getValues();
var lastRow = getLastRowSpecial(columnToCheck);
Logger.log(lastRow);
var dataRange = datasheet.getRange(lastRow+1,1,1,datasheet.getLastColumn()-3);
Logger.log(dataRange);
var dataValues = dataRange.getValues();
Logger.log(dataValues);
dataRange.setValues(values);
Logger.log(dataRange.setValues(values))
formSS.getRange('B4:B14').clearContent();
};
function getLastRowSpecial(range){
var rowNum = 0;
var blank = false;
for(var row = 0; row < range.length; row++){
if(range[row][0] === "" && !blank){
rowNum = row;
blank = true;
}else if(range[row][0] !== ""){
blank = false;
};
};
return rowNum;
};
尝试
var dataRange = datasheet.getRange(lastRow,1,values.length,values[0].length)
请参阅上面的编辑问题,其中包含所需的修订脚本。
这里的问题是我的结果表的 GI 列包含公式(以灰色显示),需要修改下面的这一行以获取最后一列 -3,否则脚本会查看太多不需要的列. 还必须将“lastRow”修改为“lastRow+1”,因为这会覆盖我已经输入的最后一行数据,+1 将使新数据 go 成为下一个可用行。
var dataRange = datasheet.getRange(lastRow+1,1,1,datasheet.getLastColumn()-3);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.