2016-03-30 24 views
0

Iがどのセルが変更され、それが正しい範囲内にある場合、それは最後の列アウト日付を更新チェックGoogleのシートを有しています。コードは次のようになります。getActiveCell(上の範囲外のGoogleシートのセル参照)

function onEdit() { 
var firstProductCol = 6; 
var lastProductCol = 30; 

var s = SpreadsheetApp.getActiveSheet(); 
if(s.getName() == "Skills Map") { //checks that we're on the correct sheet 
    var activeCell = s.getActiveCell(); 
    Logger.log("activeCell: " + activeCell.getA1Notation()); 

    var seName = activeCell.offset(0, 3 - activeCell.getColumn()).getValue(); 
    Logger.log('value of B: [' + seName + "]"); 
} 

とエラーがそれだけでgetActiveCellである7行目にあります示唆している...ので、私はそれが「があるにISN場合は、エラーがことを考えるとスローされることがありますかわかりませんアクティブなセルでは、フィールドの値を変更することはできません。

私はスクリプトを自分で実行すると、私はエラーに遭遇することはありません。問題は、スクリプトのデバッグツールを使用して...他の人がシートを(私は彼らが特に何をすべきかわかりません)を使用する場合、私はこのエラーの日レポートの終了を受け、

たまにではありますエディタ、私は最後の実行からログを見ることができます...ビュー - >コンソールログがありますが、それは以前の実行からのログを保存していないようです...それを行う方法は?

エラー自体上の任意の提案? 乾杯。

答えて

1

は、列番号は、それが列A、BまたはC以外のときに、ユーザの編集セルエラーが発生する可能性が高いです正の数でなければならないので、行番号7

var seName = activeCell.offset(0, 3 - activeCell.getColumn()).getValue(); 

あること見える

これを処理する方法の1つは、activeCell.getColumn()を返す値が3未満であることを確認することです。

+0

ありがとうございました。私のシートの仕組みは、列4と列30の間で何かを編集すると、「名前」列が移入されている限り、最後のフィールドが更新されます。 だから、7行目のポイントは、「オフセット」を使用してより良い方法があるのならば、私は直接、カラム3に行くさせていただき...同じ行ではなく、3列のセルの値を取得することです私はそれが常にその1つであることを知っているので... 私はちょうど現在の行を取得し、静的な数として列3を使用し、ちょうどそのセルの値を取得する必要があります... –

関連する問題