0

我有一个 google 表,其中包含两个名为“ParSheet”和“Opportunities”的表。机会表包含我所有潜在客户的联系信息。ParSheet 是一个估算表,我可以在其中对这些潜在客户进行估算。

在 ParSheet 上,我有一个从机会姓氏列中提取的下拉列表。在 ParSheet 中,我希望能够从下拉列表中选择一个特定的姓氏,然后运行我的脚本,该脚本将复制单元格 H48 中的总估计成本并将其复制到机会表的 U 列和相应的行在 ParSheet 中选择的相同姓氏。机会表中的姓氏位于 D 列中,ParSheet 上的姓氏下拉列表位于单元格 H51 中

目前我将此作为我的代码,但仅适用于一个名称和一个特定的单元格。我需要它适用于 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);

}

我是谷歌表格脚本的新手,因此非常感谢任何帮助。

4

0 回答 0