我有以下脚本(从论坛复制)可将表单响应表(事件)的最后一行复制到目标表(表11)。触发条件是:表单提交。
function CopyLastrowForm() {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var sourceSheet = ss.getSheetByName("Event");
var source = sourceSheet.getRange("A:AC" + sourceSheet.getLastRow());
var destSheet = ss.getSheetByName("Sheet11");
var lastRow = destSheet.getLastRow();
if (lastRow) destSheet.insertRowAfter(lastRow);
source.copyTo(destSheet.getRange(lastRow + 1,1), {contentsOnly: true});
}
当目标表行为空白但我(在目标表AD以后的所有行中)有一些arrayformulas时,这可以正常工作!
所以脚本运行了,但是结果没有出现(我想是因为它无法在sheet11上找到lastrow)。
应如何对其进行修改,以便它将从事件的最后一行复制A:AC(正值)!到Sheet11,其中A:AC为空白,但从Cols AD开始已经有公式
答案 0 :(得分:0)
您可以使用类似的方法为所需的任何列获取单个列的高度。
function getColumnHeight(col){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getRange(1,col,sh.getLastRow(),1);
var vA=rg.getValues();
while(vA[vA.length-1][0].length==0){
vA.splice(vA.length-1,1);
}
return vA.length;
}