0

「ParSheet」と「Opportunities」という名前の 2 つのシートを含む Google シートがあります。商談シートには、すべてのリードの連絡先情報が含まれています。ParSheet は、これらのリードの見積もりの​​計算を実行できる見積もりシートです。

ParSheet には、機会の姓の列から取得するドロップダウン リストがあります。ParSheet 内で、ドロップダウンから特定の姓を選択し、スクリプトを実行して、セル H48 内の合計見積もりコストをコピーし、それを Opportunities シートの U 列と対応する行にコピーできるようにしたいと考えています。 ParSheet で選択された同じ姓。商談シートの姓は列 D 内にあり、ParSheet の姓ドロップダウンはセル H51 にあります。

現在、これをコードとして使用していますが、1 つの名前と 1 つの特定のセルに対してのみ機能します。列 D のすべての可能な姓に対して機能し、対応する一致するセル値の列 U にデータをコピーする必要があります。

 function EstimatedPar() {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getActiveSheet();
 var sourcerange = s.getRange('H48').getValues();
 var sourcerange_transposed = Object.keys(sourcerange[0]).map(function (c) { return sourcerange.map(function (r) { return r[c]; }); });

 var dynamic_cell = s.getRange('H51').getValue();

 var target_s = ss.getSheetByName('Opportunities');

var target_r = s.getRange('D48').getValues();
   var match = target_s.getRange('D48').getValue();
   if(dynamic_cell == match){
     var targetrange = target_s.getRange('U48');
   }
 

 targetrange.setValues(sourcerange_transposed);

}

私はスクリプトをいじって、以下のコードで動作させようとしましたが、エラーが発生しました: TypeError: Cannot read property 'setValues' of undefined

    function EstimatedPar() {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getActiveSheet();
 var sourcerange = s.getRange('H48').getValues();
 var sourcerange_transposed = Object.keys(sourcerange[0]).map(function (c) { return sourcerange.map(function (r) { return r[c]; }); });

 var dynamic_cell = s.getRange('H51').getValue();

 var target_s = ss.getSheetByName('Opportunities');

var target_r = s.getRange('D2:D').getValues();
   var match = target_s.getRange('D2:D').getValue();
   if(dynamic_cell == match){
     var targetrange = target_s.getRange('U2:U');
   }
 

 targetrange.setValues(sourcerange_transposed);

}

Google シートでスクリプトを作成するのは初めてなので、どんな助けでも大歓迎です。

4

0 に答える 0