2016-06-22 7 views
2

列Aのセルが列Cのセルをクリックすると空であるかどうかをテストしようとしています。空の場合は、列Aのセルに変数newValueを設定します。OnEditイベント処理と空白セル

function onEdit(e){ 
    var newValue=10 
    var range = e.range; 
    var offsetRange = offset(0,-2).range; 
    if (isblank().offsetRange) {offsetRange.setValue(newValue);} 
} 

基本的な目標は、上記の主キーの値が、私はスプレッドシートで単純なテーブルビューデータベースに取り組んでいるA列に格納されている主キーの作成には、このテストコードから機能を組み込むことです。ユーザが列Cの空セルへのデータ入力を開始する(すなわち、おそらく新しいレコード/行を作成する)場合、対応する行の列Aは空白(主キーが欠けている)の場合、コードはAを生成し、列A内の番号を主キーとして使用します(後でユニークな番号を生成することができます)。

どうすればこの問題を解決できますか?

答えて

0

スクリプトのロジックは、理にかなっていますが、いくつかのミス作ら:、isblankとして

  1. スプレッドシート機能、などをAppsスクリプトでは使用できません。
  2. メソッド名は、の後にのように表示されます。すなわち:range.offset(0, -2)、ないoffset(0, -2).range
  3. 範囲は、その範囲内と同じではありません。値を取得するには、getValueまたはgetValuesを適切に使用します。
  4. 空白のセルにApps Scriptの観点から空の文字列が含まれているように見えます。したがって、空白のテストは次のようにoffsetRange.getValue() === ''です。

正しいスクリプト:

function onEdit(e) { 
    var newValue = 10; 
    var range = e.range; 
    var offsetRange = range.offset(0, -2); 
    if (offsetRange.getValue() === '') { 
    offsetRange.setValue(newValue); 
    } 
}