これは私の最初の投稿です。Google とこのサイトで検索してみましたが、特にこのシナリオでの GAS 内での型キャストまたは数値の変換に関する情報は実際には見つかりませんでした。だからここで問題:
Google スプレッドシートに添付された非常に基本的なスクリプトがあります。スクリプトは、入力された最後の行を追跡し、値を 1 ずつ増やして、次の行に入力できるようにします。「最後に使用した行」をプロジェクト プロパティとして保存しています。何らかの理由で、スクリプトはプロジェクトのプロパティに値を 10 進数値として書き戻し続けます。これにより、10 進数値を使用してセルの位置を参照できないように見えるため、スクリプト全体が中断されます。
コード スニペットは次のとおりです。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var value = ss.getSheetByName("Sheet1").getRange("D13").getValue().toString();
var last = ScriptProperties.getProperty("last");
var therowx = parseInt(ScriptProperties.getProperty("therow"));
Browser.msgBox("The last row is: " + therowx);
if( value != last ) {
ScriptProperties.setProperty("last", value);
ScriptProperties.setProperty("therow", therowx + 1);
}
}
スクリプトを実行する前にプロパティを 1 に事前設定したと仮定すると、このメソッドが起動すると、2 ではなく 2.0 に設定されます。メソッド呼び出しを Number() および parseInt() 関数でラップしようとしましたしかし、それらは違いを生むようには見えません。
私は何か間違ったことをしていると確信していますが、何がよくわからないので、提案を受け付けています。