回答編集履歴

1

修正

2019/02/26 05:54

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -1,16 +1,10 @@
1
- コメントにかくなよー定時実行でコード書いたじゃん。
1
+ 未検証
2
2
 
3
-
4
-
5
- * 定時実行
6
-
7
- 定時実行すると、全部取って全部書き直すかな。なぜならどこまでをコピーしたか知り得ないんだから。
3
+ がんばってバグ取りてくださ
8
4
 
9
5
  ```javascript
10
6
 
11
- function q176354() {
7
+ function q176354(e) {
12
-
13
- const book = SpreadsheetApp.openById('1nF4EKGDdmGbn3g1fVX4hpjSpjzff0XMFZlDah6i8pDU').getSheetByName("");
14
8
 
15
9
  const srcSheetName = "コピー元シート名";
16
10
 
@@ -18,15 +12,19 @@
18
12
 
19
13
  const allowance = "●●";
20
14
 
21
- const copyVals = book.getSheetByName(srcShetName).getDataRange().getValues().filter(function(e){ return e[9] = allowance});
15
+ const sh = e.range.getSheet();
22
16
 
23
- const dstSheet = book.getSheetName(dstSheetName);
17
+ if(sh.getName() !== srcSheetName) return;
24
18
 
25
- if(copyVals.length < 1) return;
19
+ if(e.range.getColumn() !== 10) return;
26
20
 
27
- dstSheet.clear();
21
+ if(e.value !== allowance) return;
28
22
 
23
+ const lastCol = sh.getLastColumn();
24
+
29
- dstSheet.getRange(1,1,copyVals.length, copyVals[0].length).setValues(copyVals);
25
+ const val = e.range.getSheet().getRange(e.range.getRow(), 1, 1, lastCol).getValues();
26
+
27
+ e.source.getSheetByName(dstSheetName).appendRow(val[0]);
30
28
 
31
29
  }
32
30