回答編集履歴
4
追記
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
回答の追記
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
修正
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
修正
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
全部書いてしまいましたがこんな感じです!
|
2
|
+
|
3
|
+
[todo]と書いてあるところが質問者さんが変更すべき箇所です。
|
2
4
|
|
3
5
|
|
4
6
|
|