質問: SpreadsheetApp.getActive().getSheetByName('test'); sheet.getRange(sheet.getLastRow()+1, 1, i, 4).setValues(valMsgs); //シートに貼り付け }
回答: 下記の関数を呼び出して、引数指定シートオブジェクト・指定列(A列なら1)で指定列の最終使用行を得られます。呼び出しで得られた行の次行からデータを追記するようにすればよいかと思います。 この関数の仕組みは、シート全体の最終行を取得してから、指定列の最終使用行を1行ずつ上に空白かどうか見ていくという内容です。 ``` //シート・列を指定して最終使用行を取得する(getValue()を使用) function _getLastRow(sheet,col){ var lastRow = 0 for (var i = sheet.getLastRow(); i>0; i--) { if(sheet.getRange(i, col).getValue() != '') { break; } } lastRow = i return lastRow } //シート・列を指定して最終使用行を取得する(配列を使用) function _getLastRow2(sheet,col){ var lastRow = 0 var ary =[[]] ary = sheet.getRange(1,col,sheet.getLastRow()).getValues() for (var i = ary.length-1; i>-1; i--) { if(ary[i][0] != '') { break; } } lastRow = i return lastRow +1 //配列添字数との差を加算 } ```