Google Apps脚本 - 在电子表格中查找列的最后一行空行

时间:2016-10-04 18:14:35

标签: javascript google-apps-script google-sheets

我目前有一个这样的脚本:(每分钟运行并获取任何值)

  // function 01
  sheet2.getRange(sheet2.getLastRow() + 1, 1, 1, 6).setValues(values);

  // function 02
  sheet2.getRange(sheet2.getLastRow() + 1, 10, 1, 6).setValues(values);

找到最后一行并在下一行中设置值。两者都是单独的功能。但目前它输出的是这样的东西。

当前输出:不好

// function 1 output here       // function 2 output here
------------------------------------------------------------
|   A    |     B    |   C     ||         |         |        |
------------------------------------------------------------
|        |          |         ||   D     |    E    |   F    |
------------------------------------------------------------
|        |          |         ||   G     |    H    |   I    |
------------------------------------------------------------
|   J    |    K     |   L     ||         |         |        |
------------------------------------------------------------

我希望它显示如下:

预期结果

------------------------------------------------------------
|   A    |     B    |   C     ||   D     |    E    |   F    |
------------------------------------------------------------
|   J    |     K    |    L    ||   G     |    H    |   I    |
------------------------------------------------------------
|        |          |         ||         |         |        |
------------------------------------------------------------

希望我明白。

1 个答案:

答案 0 :(得分:2)

尝试使用以下功能,稍加修改以传递2014年11月27日提供的解决方案Mogsdad中的列以获取新表格以响应帖子Faster way to find the first empty row

// Don's array approach - checks first column only
// With added stopping condition & correct result.
// From answer https://stackoverflow.com/a/9102463/1677912
// Added the passing of myColumn which needs to be a column range
// example use: var emptyRow = getFirstEmptyRowByColumnArray('B:B');
function getFirstEmptyRowByColumnArray(myColumn) {
  var spr = SpreadsheetApp.getActiveSpreadsheet();
  var column = spr.getRange(myColumn);
  var values = column.getValues(); // get all data in one call
  var ct = 0;
  while ( values[ct] && values[ct][0] != "" ) {
    ct++;
  }
  return (ct+1);
}

当然,它可以写成只是传递列并根据需要创建范围。