回答編集履歴

4

追記

2021/05/19 04:43

投稿

Tatsunosuke
Tatsunosuke

スコア599

test CHANGED
@@ -1,3 +1,81 @@
1
+ **追記**
2
+
3
+ エラーが出ていたのは、forEachの閉じカッコが足りていないためでした、すみません!
4
+
5
+ あと、var values = sheet1.getRange('a:bf').getValues(); ここのシートの指定がsheetになっていたたので、sheet1に変更してます。
6
+
7
+
8
+
9
+ これでいけると思います。
10
+
11
+
12
+
13
+ ```gas
14
+
15
+ function myFunction() {
16
+
17
+ var spreadsheet = SpreadsheetApp.openById('スプレッドキー1');
18
+
19
+ var sheet1 = spreadsheet.getSheetByName('シート1'); //[todo]シート名を指定
20
+
21
+
22
+
23
+ var spreadsheet2 = SpreadsheetApp.openById('スプレッドキー2');
24
+
25
+ var sheet2 = spreadsheet2.getSheetByName('シート2'); //[todo]シート名を指定
26
+
27
+
28
+
29
+
30
+
31
+    var values = sheet1.getRange('a:bf').getValues();
32
+
33
+
34
+
35
+ //a1のセルはvalues[0][0]に入ってます。
36
+
37
+ if(values[0][0] == "変更する"){
38
+
39
+ //[todo]変更するだった場合の処理
40
+
41
+ //setValue 1セルだけの処理だと重たくなるため、極力、getValues, setValuesの複数形がおすすめ
42
+
43
+ //a:brの値だけ取り出す setValues は2次元配列じゃないと貼り付け出来なのでこの形に
44
+
45
+
46
+
47
+ var setValues = []
48
+
49
+ values.forEach(e=>{//取得したすべての値を確認する。
50
+
51
+ if(e[0] =="変更する"){
52
+
53
+      setValues.push(e) // "変更する"のときの行の配列
54
+
55
+    }
56
+
57
+ })
58
+
59
+ //シートへの貼り付け
60
+
61
+ //[todo]必要であればシートのクリアを
62
+
63
+ sheet2.getRange(1,1,setValues.length,setValues[0].length).setValues(setValues)
64
+
65
+ }
66
+
67
+ }
68
+
69
+ ```
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+ ---
78
+
1
79
  **追記**
2
80
 
3
81
  コメント確認しました。

3

回答の追記

2021/05/19 04:43

投稿

Tatsunosuke
Tatsunosuke

スコア599

test CHANGED
@@ -1,3 +1,53 @@
1
+ **追記**
2
+
3
+ コメント確認しました。
4
+
5
+ そうするとこんな感じになりますね。
6
+
7
+ eがどうなってるかわからない場合は、
8
+
9
+ console.log()やデバッグを使って確認してみてくださいね!
10
+
11
+
12
+
13
+ ```gas
14
+
15
+
16
+
17
+ var setValues = []
18
+
19
+ values.forEach(e=>{ //取得したすべての値を確認する。
20
+
21
+   if(e[0] =="変更する"){
22
+
23
+     setValues.push(e) // "変更する"のときの行の配列
24
+
25
+   }
26
+
27
+ }
28
+
29
+
30
+
31
+ //シートへの貼り付け
32
+
33
+ //[todo]必要であればシートのクリアを
34
+
35
+
36
+
37
+ sheet2.getRange(1,1,setValues.length,setValues[0].length).setValues(setValues)
38
+
39
+
40
+
41
+
42
+
43
+ ```
44
+
45
+
46
+
47
+ ---
48
+
49
+
50
+
1
51
  全部書いてしまいましたがこんな感じです!
2
52
 
3
53
  [todo]と書いてあるところが質問者さんが変更すべき箇所です。

2

修正

2021/05/18 00:44

投稿

Tatsunosuke
Tatsunosuke

スコア599

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  var setValues = []
50
50
 
51
-     setValues.push(values[0]) //values[0] は1行目のセルの
51
+     setValues.push(values[0]) //values[0] は1行目のセルの配列
52
52
 
53
53
 
54
54
 

1

修正

2021/05/14 13:25

投稿

Tatsunosuke
Tatsunosuke

スコア599

test CHANGED
@@ -1,4 +1,6 @@
1
1
  全部書いてしまいましたがこんな感じです!
2
+
3
+ [todo]と書いてあるところが質問者さんが変更すべき箇所です。
2
4
 
3
5
 
4
6