我需要检查特定范围以找到具有值的最后一个单元格,然后将值粘贴到下一个单元格中

时间:2018-01-10 20:48:09

标签: google-apps-script google-sheets

我正在寻找有关功能的帮助。我想检查特定范围(F12:F34),找到该范围内具有值的最后一个单元格,然后在下面的下一个单元格中粘贴另一组值(已经复制并等待)。基本上这将在一整天内填补这个范围。范围中的每一行都是作业现场的持续时间。 F列是分配作业的停止时间。我能够用很多IF和Else IF做到这一点,但我希望能有更优雅(和更短)的代码可以编写。希望这能解释我尝试完成的任务 这是表格的链接,看看它是什么样的:
https://docs.google.com/spreadsheets/d/188fYdI50uJ-3Qpy-GzP4l0xgoJlgm_QegWmVCgarU-Y/edit?usp=sharing

1 个答案:

答案 0 :(得分:0)

您可以通过读取列中的所有值然后在单元格中循环显示空白来获取最后一行。如果您认为可以在中间获得空白,那么您将以相反的顺序循环。即:for(var i=rangeValues.length-1;i>=0;i--)。好吧,您可能还会遇到最后一行电子表格将填充一些数据的情况。在这种情况下,为了使程序继续运行,您可以插入一行然后返回其位置。

function nextFreeRow(){
  var rangeValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('foo').getRange('F:F').getValues();
  for(var i=0;i<rangeValues.length;i++){
    if(rangeValues[i][0].toString() == "") return i+1;
  }
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('foo').insertRowAfter(rangeValues.length);
  return rangeValues.length+1;
}