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

回答編集履歴

1

修正

2019/02/26 05:54

投稿

papinianus
papinianus

スコア12705

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