将值转移到Google文档电子表格中特定范围内的第一个空行

时间:2014-04-26 10:47:17

标签: google-apps-script google-sheets

我想将 E6:I6 的内容复制到 E13:I17 范围内的第一个空行。然后脚本应删除单元格 E6 G6 的内容。到目前为止我的代码看起来像这样:

function copyAndDelete() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getRange('E6:I6');
  var range1 = ss.getRange('E6');
  var range2 = ss.getRange('G6');
  var l = ss.getDataRange().getValues().length;
  source.copyTo(ss.getRange('E13:I13'), {contentsOnly: true});
  range1.clearContent();
  range2.clearContent();
}

任何人都可以帮我吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这段代码:

function copyAndDelete() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getRange('E6:I6');
  var range1 = ss.getRange('E6');
  var range2 = ss.getRange('G6');

  var vals = ss.getRange("E13:I17").getValues();

  var destinationRow = 13;
  for (var i in vals){
    var rowVal = vals[i].join();
    rowVal = rowVal.replace(/,/gm,"");
    Logger.log(rowVal);
    if(rowVal==""){
      destinationRow=13+Number(i);
      ss.getRange("E"+destinationRow+":I"+destinationRow).setValues(source.getValues());
      range1.clearContent();
      range2.clearContent();
      return;
    }
  }
  throw("no empty row found :-(");
}

E13:I17 中没有空行时,您没有指定要执行的操作,因此我决定抛出错误,在这种情况下不执行复制操作。