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

回答編集履歴

2

回答の追記

2018/08/08 07:35

投稿

macaron_xxx
macaron_xxx

スコア3191

answer CHANGED
@@ -10,4 +10,23 @@
10
10
  (配列の行番号とシートの行番号はずれている。)
11
11
 
12
12
  ただし、deleteRowすると、それ以降の行番号が```getDataRange()```の際とずれてしまうので
13
- 下から上に向かって処理する方がよさそうです。
13
+ 下から上に向かって処理する方がよさそうです。
14
+
15
+ ##追記
16
+ こんな感じじゃないですかね?(試してないけど)
17
+ ```js
18
+ for(var i = dat.length - 1; i >= 0; i--) {
19
+ if(dat[i][8] == "未完") {
20
+ var TestDate = dat[i][3];
21
+ if(TestDate < YMD){
22
+ mySheet.getRange(i + 1, 9).setValue("完了"); // 毎回APIを呼び出すことになるが…。
23
+ }
24
+ }
25
+ else if(dat[i][8] == "完了"){
26
+ var TestDate = dat[i][3];
27
+ if(TestDate < LastMonth){
28
+ mySheet.deleteRow(i + 1);
29
+ }
30
+ }
31
+ }
32
+ ```

1

リンクの修正

2018/08/08 07:35

投稿

macaron_xxx
macaron_xxx

スコア3191

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  まずはリファレンスを読むようにしましょう。
2
- https://developers.google.com/apps-script/reference/spreadsheet/sheet#deleteRow(Integer)
2
+ [https://developers.google.com/apps-script/reference/spreadsheet/sheet#deleteRow(Integer)](https://developers.google.com/apps-script/reference/spreadsheet/sheet#deleteRow(Integer))
3
3
 
4
4
  deleteRowは引数に行番号を取ります。
5
5
  よって