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

回答編集履歴

3

ソースを訂正しました。

2021/05/27 06:38

投稿

tmsw
tmsw

スコア97

answer CHANGED
@@ -2,19 +2,16 @@
2
2
 
3
3
  >lastRoe2には、1列目の最終行の値を取得したい。
4
4
 
5
- それであればデータの入ってないセルを探して、その前のセルの値を取得すればいいと思います。
6
-
7
5
  ```gas
6
+ function myFunction() {
7
+ //対象のシートを取得
8
- const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sample');
8
+ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sample');
9
- let raw = 1,
10
- lastRow2
11
- ;
12
9
 
13
- while(1) {
10
+ //列の最終行から上方向に取得する
11
+ var lastRow2 = sheet.getRange(sheet.getMaxRows(), 1).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
14
- if(!sheet.getRange(raw+1, 1).getValue()) break;
12
+ lastRow2 = sheet.getRange(lastRow2, 1).getValue();
15
- raw++;
13
+ Logger.log(lastRow2);
16
14
  }
15
+ ```
17
16
 
18
- lastRow2 = sheet.getRange(raw, 1).getValue();
17
+ lastRaw2が最後の行数なのでsheet.getRangeで行数にlastRaw2を指定してgetValue()で取れます。
19
- Logger.log(lastRow2);
20
- ```

2

ソースを訂正しました。

2021/05/27 06:38

投稿

tmsw
tmsw

スコア97

answer CHANGED
@@ -1,13 +1,20 @@
1
- 単純に最終行から最終列まで回せばいいような気がします。
1
+ ~~単純に最終行から最終列まで回せばいいような気がします。~~
2
2
 
3
+ >lastRoe2には、1列目の最終行の値を取得したい。
4
+
5
+ それであればデータの入ってないセルを探して、その前のセルの値を取得すればいいと思います。
6
+
3
7
  ```gas
4
- const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sample'),
8
+ const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sample');
5
- raw = sheet.getLastRow(),
9
+ let raw = 1,
6
- clm = sheet.getLastColumn()
10
+ lastRow2
7
- ;
11
+ ;
8
12
 
9
- let data = [];
13
+ while(1) {
14
+ if(!sheet.getRange(raw+1, 1).getValue()) break;
15
+ raw++;
16
+ }
10
17
 
11
- for(let i=1; i<=clm; i++) data.push(sheet.getRange(raw, i).getValue());
18
+ lastRow2 = sheet.getRange(raw, 1).getValue();
12
- Logger.log(data);
19
+ Logger.log(lastRow2);
13
20
  ```

1

ソースを訂正しました。

2021/05/27 06:29

投稿

tmsw
tmsw

スコア97

answer CHANGED
File without changes