2016-09-11 12 views
0

クリックするとカスタムボタンを使用してsheet1からsheet2に3つの値をコピーします。現在のセルを取得して他のシートのGoogleシートにコピーします

私はmy custom buttonをクリックしたとき、私はSheet1の

A  B  C  D  F  G 
1 bbb  kkkk  12  2  3  my custom button here 
2 hhhh  tttt  13  6  8  my custom button here 
3 ttt  qqqq  16  1  4  my custom button here 

そして、私のSheet2

A  B   C 
1 

に私は何をしたいことは、私がクリックされたボタンの列の元のSheet1でB1 C1 F1から値をコピーしたいされていますA1 B1 C1となる。

私はこの

function CopyPaste() { 
    var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');    
    var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2'); 
    sheet1.getRange('G2').getValue().copyTo(sheet2.getRange('A45')) ; 
    sheet1.getRange('I2').getValue().copyTo(sheet2.getRange('B45')) ; 
    sheet1.getRange('K2').getValue().copyTo(sheet2.getRange('C45')) ; 
} 

を試してみましたが、これはクリックされた行は常にG2 I2 K2を取得していません。これから私は計算された値を得ていない、代わりに私がしたくない数式スクリプトを得ている。私はsheet1からちょうど計算された値を取得したい。計算されます。

答えて

2

"カスタムボタン"では、割り当てられたスクリプトを使用した画像を参照していると仮定し、自動的になどのトリガーで発生するようなものはありません。

解決策の1つは、パラメータ化されたメイン関数と、各セットの関数を「カスタムボタン」によってトリガされるパラメータに作成することです。各行にボタンがあり、行番号をパラメータとして送信する必要がある場合は、各行に関数が必要です。

function customButton_row1() { 
    CopyPaste(1); 
} 

function customButton_row2() { 
    CopyPaste(2); 
} 

function CopyPaste(row) { 
    var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');    
    var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2'); 
    sheet1.getRange('G' + row).getValue().copyTo(sheet2.getRange('A45')) ; 
    sheet1.getRange('I' + row).getValue().copyTo(sheet2.getRange('B45')) ; 
    sheet1.getRange('K' + row).getValue().copyTo(sheet2.getRange('C45')) ; 
} 
関連する問題