2017-07-02 26 views
0

Googleシートでは、コピーされているシートの特定のセルを編集した後に、あるシートから別のシートにデータをコピーするようにしています。私は、特定のセルによってトリガーされる以外は、私が望むことをするコードを持っています。私が何が欠けているか教えてもらえますか?Googleシートonedit特定のセル

function OnEdit(e) { 


var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var destination = SpreadsheetApp.openById("1P6gj2UwfRmSMYZ4LBovvqbqy88aluOysPqWWhWbw_VE") 
var source_sheet = ss.getSheetByName("Submit"); 
var destination_sheet = destination.getSheetByName("Point Tracker"); 
var source_range = source_sheet.getRange("A2:C2"); 
var editedcell = source_sheet.getRange("C2"); 


if(editedcell.getValue() !== 0){ 

var last_row = destination_sheet.getLastRow(); 
destination_sheet.insertRowAfter(last_row); 
var destination_range = destination_sheet.getRange("A"+(last_row+1)+":C"+(last_row+1)); 
source_range.copyTo(destination_range,{contentsOnly:true}); 
source_sheet.getRange("C2").setValue(""); 

    } 
} 

答えて

0

これは

function onEdit(e) { 

if (e.source.getActiveSheet().getName() !== "Submit" || 
    e.range.getA1Notation() != 'C2' || typeof e.value == 'object') return; 
SpreadsheetApp.openById("1P6gj2UwfRmSMYZ4LBovvqbqy88aluOysPqWWhWbw_VE") 
    .getSheetByName('Point Tracker') 
    .appendRow(e.range.offset(0, -2, 1, 3) 
    .getValues()[0]); 
e.range.setValue(null); 
} 

注動作するかどうかを参照してください:このスクリプトは、イベントオブジェクトを使用していますが。スクリプトエディタで再生ボタンをクリックしてスクリプトをテストしないでください。代わりに、熟練したセルを編集し、それが機能するかどうかを確認してください。

+0

これは完全に機能します。どうもありがとうございました! – jc247

+0

大歓迎@ jc247。それがあなたの質問に答えた場合は、回答またはupvoteを受け入れてください。 – JPV

0

これはうまくいくと思います。私は通常、これらのことをデバッグする必要がありますが、うまくいけば、私はあなたに近づいた。

function copyOnTrigger(e) 
{ 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var destination = SpreadsheetApp.openById("1P6gj2UwfRmSMYZ4LBovvqbqy88aluOysPqWWhWbw_VE") 
var source_sheet = ss.getSheetByName("Submit"); 
var destination_sheet = destination.getSheetByName("Point Tracker"); 
var source_range = source_sheet.getRange("A2:C2"); 
var editedcell = source_sheet.getRange("C2"); 
var cell=e.range.getCell(1,1).getA1Notation(); 


if(cell=='C2' && e.value != 0){ 

var last_row = destination_sheet.getLastRow(); 
destination_sheet.insertRowAfter(last_row); 
var destination_range = destination_sheet.getRange("A"+(last_row+1)+":C"+(last_row+1)); 
source_range.copyTo(destination_range,{contentsOnly:true}); 
source_sheet.getRange("C2").setValue(""); 

    } 
} 
関連する問題