teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

ああ

2018/02/19 04:59

投稿

jinshan
jinshan

スコア107

answer CHANGED
@@ -3,16 +3,31 @@
3
3
  この関数の仕組みは、シート全体の最終行を取得してから、指定列の最終使用行を1行ずつ上に空白かどうか見ていくという内容です。
4
4
 
5
5
  ```ここに言語を入力
6
- //シート・列を指定して最終使用行を取得する
6
+ //シート・列を指定して最終使用行を取得する(getValue()を使用)
7
7
  function _getLastRow(sheet,col){
8
- var lastRow = 1
8
+ var lastRow = 0
9
- for (var i=sheet.getLastRow(); i>1; i--) {
9
+ for (var i = sheet.getLastRow(); i>0; i--) {
10
- if(sheet.getRange(i, col).getValue() != "") {
10
+ if(sheet.getRange(i, col).getValue() != '') {
11
- lastRow = i
12
11
     break;
13
12
    }
14
13
   }
14
+ lastRow = i
15
15
  return lastRow
16
16
  }
17
17
 
18
+ //シート・列を指定して最終使用行を取得する(配列を使用)
19
+ function _getLastRow2(sheet,col){
20
+ var lastRow = 0
21
+ var ary =[[]]
22
+ ary = sheet.getRange(1,col,sheet.getLastRow()).getValues()
23
+
24
+ for (var i = ary.length-1; i>-1; i--) {
25
+ if(ary[i][0] != '') {
26
+    break;
27
+   }
28
+  }
29
+ lastRow = i
30
+ return lastRow +1 //配列添字数との差を加算
31
+ }
32
+
18
33
  ```

1

2018/02/19 04:59

投稿

jinshan
jinshan

スコア107

answer CHANGED
@@ -1,6 +1,7 @@
1
- 下記の関数を呼び出して、引数指定シートオブジェクト・指定列(A列なら1)で結果を得られます。
1
+ 下記の関数を呼び出して、引数指定シートオブジェクト・指定列(A列なら1)で指定列の最終使用行を得られます。呼び出しで得られた行の次行からデータを追記するようにすればよいかと思います。
2
- 仕組みは、シート全体の最終行を取得してから、指定列の最終使用行を1行ずつ上に空白かどうか見ていくという内容です。
3
2
 
3
+ この関数の仕組みは、シート全体の最終行を取得してから、指定列の最終使用行を1行ずつ上に空白かどうか見ていくという内容です。
4
+
4
5
  ```ここに言語を入力
5
6
  //シート・列を指定して最終使用行を取得する
6
7
  function _getLastRow(sheet,col){