Googleスプレッドシートでスクリプトを実行しようとしています。以下はコードスニペットです:2.0はGoogle Appsスクリプトで20と認識されます
var startRow = 2;
var data = dataRange.getValues();
for (i in data) {
sheet.getRange(startRow + i, 4).setValue("EMAIL_SENT");
}
2番目の行に「EMAIL_SENT」と表示されます。しかし、代わりに、それは20行目から現れます。 Loggerを使用してstartRowを書き出すと、2ではなく2.0と表示されます。私はFinlandに住んでいるので、2.0と認識されていると思います。ドットではなくカンマが基数として使用されます。言いましたが、私の言語設定はドットを基点に使う日本語で設定されています。したがって、この解釈は論理的ではありませんが、これが私が考えることができる唯一の説明です。私が使用したとき
Math.round(startRow)
これは役に立ちませんでした。誰も解決策を提案できますか?ありがとうございました!
にを追加することができます。私はdata.lengthを<; I + = 1 ) ' –
実際にあなたが持っている問題はあなたの考えではありません。 2.0は、ロガー内の整数の正規表現です。実際の問題は、スクリプトで整数を認識せず、文字列であると仮定しているため、2 + 0の加算ではなく2の代わりに2を加えたことです。 Sandyのソリューションは、この種の問題を避けるための良い方法です。 –
他の人が質問に答えましたが、ベストプラクティスのコメントを追加するだけです。個々のget range ... setvalueを持つシートに値を追加しないでください。メモリ内の全範囲を表す単一の配列を操作して、シートに1回書き込むほうがよい。 – Jonathon