Google Apps Scriptは新しく、目標を達成するのに問題があります。ユーザーが選択したターゲットスプレッドシートにシートをコピーしてデータをコピーする方法
- がで
- タイプ(それぞれの名前は、それに関連付けられたユニークな/個別 GoogleのワークブックのURLを持っている)ドロップダウンから名前を選択します。 私は、ユーザーがすることを可能にするGoogleスプレッドシートワークブックを持っていますスプレッドシート名
- 押して「シートを押し、」ボタン、ユーザーがボタンを押したら
希望、私は次のことを達成しようとしている:
- は、シート「テンプレート - 変更しないでください」重複すでにターゲットワークブック上に存在する(選択された名前に関連付けられたURL)
- を
- 希望のスプレッドシート名に重複シートの名前を変更コピー範囲A7 :オリジナルのワークブックのシート「トラッカー」の範囲A7にD150:ターゲット・ワークブックのD150、新しく作成されたシート
は、元のシートは、ユーザが前にスクリプトを実行するワークブックの接続を認可持つように設定されています。
は、ここに私のコードです:
function cloneGoogleSheet() {
var sheet = SpreadsheetApp.getActiveSheet();
var name = sheet.getRange("B10").getValue();
var url = sheet.getRange("f5").getValue();
var tss = SpreadsheetApp.openByUrl(url);
tss.setActiveSheet(tss.getSheetByName('Template - Do Not Modify'));
tss.duplicateActiveSheet();
var activesheet = tss.getActiveSheet();
activesheet.setName(name);
}
私の問題は、次のとおりです。
ActiveSheetsを利用すると、このすべてを行うための安全な方法で、より良い方法があることのようにそれはいないようです。
URL変数を使用しようとすると(スクリプトがハードコードされたURL値で正常に動作します)、無効な引数を取得します。URLエラー。セルF5は、ドロップダウンから選択された名前に基づいて新しいURLを更新します。ユニークなURLを持つ名前を参照するルックアップを使用します。
=ルックアップ(B4、 {P71、P72、P73、P74、P75、 P76、P77}、 {Q71、Q72、Q73、Q74、Q75、Q76、Q77} )
- 私はこれらすべてのActiveSheet変数を使用しているという事実を考えると、私は戻って取得するかどうかはわかりません範囲をコピーする私の元のシート。
私はこれを行う正しい方法を教えてくれてありがとうと思います。ありがとう!