2016-12-12 6 views
0

私は下に貼り付けた機能を簡略化するスクリプトを作成しようとしています。特定のセルステータスに基づいて水平範囲を別のGoogleシートにコピーします。

その目的は、ステータスセルが "予約確定"に更新されているかどうかをチェックし、対応する行の一部を別のシートにコピーすることです。

=IF('Finals Worksheet'!$N$5 = "Booking confirmed", importrange("//spreadsheet key//","Finals Worksheet!H11:M11"),"") 

私はまた、スプレッドシートキーを削除し、それはそれはで使用されている任意のシートから呼び出すしたいのですが。

おかげ

+0

ようこそ。何を試しましたか? –

+0

これは私の最近の試みです: function importSession(a){ var finalS = SpreadsheetApp.getActiveSpreadsheet()。getSheetByName( 'Finals Worksheet'); var S = finalS.getRange( 'Status')。getValues() var finData = finalS.getRange(3,9、finalS.getLastRow()、5); if(S [(a-1)] ==「予約確定」){ return finData [a-1] } } –

答えて

0

が、私は今、効率的に動作するように私のチェックを得たが、私は行を別のシートにコピーしようとすると、パーミッションエラーが発生します。私はcopyRangeToとSetValuesとこれらの異なるバージョンを呼び出すことを試みたと私は同じエラーを取得します。

function onEdit(e) { 

    var sheet = SpreadsheetApp.getActive().getSheetByName('Finals Worksheet'); 
    var location = sheet.getActiveCell().getRow(); 
    var data = sheet.getRange(location, 8, 1, 6); 
    var destination = SpreadsheetApp.getActive().getSheetByName('Official Finals'); 


    if (e === 'Booking confirmed') {//return 'check' 

    //data.copyValuesToRange(destination, 4, 9, location, location) 
    destination.setValues(data); 
    } 
} 
関連する問題