回答編集履歴
1
気づいた点を追記
answer
CHANGED
@@ -10,4 +10,43 @@
|
|
10
10
|
for(var i = 0; i < count; i++)
|
11
11
|
↓
|
12
12
|
for(var i = 1; i <= count; i++)
|
13
|
+
```
|
14
|
+
---
|
15
|
+
(追記)
|
16
|
+
改めてコード読んでみると色々おかしいです。
|
17
|
+
|
18
|
+
```JavaScript
|
19
|
+
var keyWord = sheet_copyFrom.getRange('A2'+':A'+targetRowInput).getValues();
|
20
|
+
var keyRank = sheet_copyFrom.getRange('B2'+':B'+targetRowInput).getValues();
|
21
|
+
```
|
22
|
+
上記コードは getValues() の結果なので keyWord も keyRank も2次元配列です。
|
23
|
+
1列だけなので、`[["a"],["b"],["c"],...,["z"]]`のような形になっているはず。
|
24
|
+
|
25
|
+
|
26
|
+
```JavaScript
|
27
|
+
for(var i=0; i < count; i++)
|
28
|
+
{
|
29
|
+
keyWordValue[i] = keyWord[i];
|
30
|
+
keyRankValue[i] = keyRank[i];
|
31
|
+
key = keyWordValue[i];
|
32
|
+
rank = keyRankValue[i];
|
33
|
+
//(以下省略)
|
34
|
+
}
|
35
|
+
```
|
36
|
+
keyWordValue[i] は i が1以降は undefined になっているはずです。
|
37
|
+
|
38
|
+
> 日付けの行だけなぜか6個ぐらい多く繰り返されてしまう
|
39
|
+
|
40
|
+
のもそれが原因でしょう。
|
41
|
+
|
42
|
+
以下修正してみたコードです。
|
43
|
+
```JavaScript
|
44
|
+
for(let i = 0; i < count; i++)
|
45
|
+
{
|
46
|
+
key = keyWord[i][0]; //1列のみなので、2次元目のインデックスは常に 0
|
47
|
+
rank = keyRank[i][0]; //同上
|
48
|
+
sheet_copyTo.getRange(i + 2, 1).setValue(key); //ヘッダー行の1行を考慮して+2
|
49
|
+
sheet_copyTo.getRange(i + 2, 2).setValue(copyDate);
|
50
|
+
sheet_copyTo.getRange(i + 2, 3).setValue(rank);}
|
51
|
+
}
|
13
52
|
```
|