我有一个链接到Google表单的电子表格,一旦表单完成,公式就会从OpenWeatherMap.org提取一些天气信息。为了保持该日期/时间的天气信息,我创建了一个脚本,将公式复制到一个值。
我想要一个执行此操作的脚本,但该脚本仅在新数据上运行,而不会保留以前的单元格。 例如,如果A1将数据复制到B1中的值,并且表单中的新数据填充了A2,则脚本将忽略A1&B1并将A2复制到B2中。
下面的代码是提供给我的,它有两个功能,无法按我的意愿工作。
function moveValuesOnly1() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var srg=sh.getRange(1,2,sh.getLastRow(),6);
var vA=srg.getValues();
sh.getRange(getLastRowOfRange("H:M")+1,8,srg.getHeight(),srg.getWidth()).setValues(vA);
}
function getLastRowOfRange(A1Range) {
var A1Range=A1Range||"H:M";//default for debugging
var ss=SpreadsheetApp.getSheetByName('Sheet1');
var sh=ss.getActiveSheet();
var rg=sh.getRange(A1Range);
var vA=rg.getValues();
for(var i=vA.length-1;i>-1;i--) {
if(vA[i].join("").length==0) {
vA.splice(i,1);
}
}
Logger.log(vA.length);
return vA.length;
}
正如我之前提到的,如果A1将数据复制到B1中的值,并且表单中的新数据填充了A2,那么脚本将忽略A1&B1并将A2复制到B2中。