使用しているデータを見ましたか?
これは、ロガーを使用してスクリプトをわずかに変更したバージョンで、何が起こるか、および以下のログ結果を確認できます。エラー メッセージが表示される理由が理解できると思います。あなたの条件の簡略化された構文は、あなたが望んでいたことをしていないようですよね?
ところで、このスクリプトの最終的な目的は何ですか? アイデアを説明していただけますか?
i の整数値に対してのみ何かをしたい場合はif(i==parseInt(i))
、たとえば次のようなものを使用する方が簡単です...
function Cool() {
var h = SpreadsheetApp.getActiveSpreadsheet();
var range = 0; var count = 1; var alph = ["A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",
"T"]; for (i = 0; i < 20; i+=0.5) {
if (i == 19 && count != 5) {
i == 0;
count += 1;
} else if (i == 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18) {
// range = h.getSheets()[0].getRange(alph[i] + count + ":" + alph[i] + count);
// SpreadsheetApp.setActiveRange(range);
Logger.log('i='+i+' '+alph[i] + count + ":" + alph[i] + count);
// randomize();
}
}
}
ロガーの結果:
i=0 A1:A1
i=0.5 undefined1:undefined1
i=1 B1:B1
i=1.5 undefined1:undefined1
i=2 C1:C1
i=2.5 undefined1:undefined1
i=3 D1:D1
i=3.5 undefined1:undefined1
i=4 E1:E1
i=4.5 undefined1:undefined1
i=5 F1:F1
i=5.5 undefined1:undefined1
i=6 G1:G1
i=6.5 undefined1:undefined1
i=7 H1:H1
i=7.5 undefined1:undefined1
i=8 I1:I1
i=8.5 undefined1:undefined1
i=9 J1:J1
i=9.5 undefined1:undefined1
i=10 K1:K1
i=10.5 undefined1:undefined1
i=11 L1:L1
i=11.5 undefined1:undefined1
i=12 M1:M1
i=12.5 undefined1:undefined1
i=13 N1:N1
i=13.5 undefined1:undefined1
i=14 O1:O1
i=14.5 undefined1:undefined1
i=15 P1:P1
i=15.5 undefined1:undefined1
i=16 Q1:Q1
i=16.5 undefined1:undefined1
i=17 R1:R1
i=17.5 undefined1:undefined1
i=18 S1:S1
i=18.5 undefined1:undefined1
i=19.5 undefined2:undefined2
編集:本質的に好奇心が強いので、提案されたIF
ステートメントでコードを試してみましたが、次のログが得られました(はるかに優れています;-)が、まったく役に立ちません。ユニティインクリメントを使用した単純なforループは同じことを行います...
i=0 A1:A1
i=1 B1:B1
i=2 C1:C1
i=3 D1:D1
i=4 E1:E1
i=5 F1:F1
i=6 G1:G1
i=7 H1:H1
i=8 I1:I1
i=9 J1:J1
i=10 K1:K1
i=11 L1:L1
i=12 M1:M1
i=13 N1:N1
i=14 O1:O1
i=15 P1:P1
i=16 Q1:Q1
i=17 R1:R1
i=18 S1:S1
そこで疑問が残ります。最終的な目標は何だったのでしょうか?