Google脚本将公式复制到Value且仅在新数据输入时

时间:2019-06-12 08:52:34

标签: google-apps-script google-sheets

我有一个链接到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中。

0 个答案:

没有答案