谷歌脚本:如何在setValue中放入一个范围



我使用了这个链接中的示例代码来制作下面的代码。https://yagisanatode.com/2017/12/13/google-apps-script-iterating-through-ranges-in-sheets-the-right-and-wrong-way/

除了最后一行之外,大部分代码都按预期工作。

在E列中,我想将自定义函数=apiav()与单元格A中的数据放在一起。但是,该代码在Google工作表单元格中返回=apiav(Range)。(需要明确的是,它应该是类似=apiav(a1)的东西(

我尝试了我能想到的一切,当然在谷歌上搜索了几个小时,但我真的很失落,找不到合适的解决方案。

function energy(){
var sector = "Energy";
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var rangeData = sheet.getDataRange();
var lastColumn = 2;
var lastRow = 999 ;
var sheet = ss.getSheets()[0];     
var searchRange = sheet.getRange(2,2, lastRow-1 ,1 );
var ouputrange = sheet.getRange(2,4, lastRow-1 ,1 );
//clear range first
ouputrange.clear("D:D");
ouputrange.clear("E:E");
/*
GOOD - Create a client-side array of the relevant data
*/
// Get array of values in the search Range
var rangeValues = searchRange.getValues();
// Loop through array and if condition met, add relevant
// background color.
for ( i = 0; i < lastColumn - 1; i++){
for ( j = 0 ; j < lastRow - 1; j++){
if(rangeValues[j][i] === sector){
sheet.getRange(j+2,i+4).setValue("yes");
var formularange = sheet.getRange (j+2,i+1);
sheet.getRange(j+2,i+5).setValue('=apiav(' + formularange + ')');
}
};
};
};

替换:

var formularange = sheet.getRange(j+2,i+1);

带有:

var formularange = sheet.getRange(j+2,i+1).getA1Notation();

因此,您将能够传递单元格引用,而不是范围对象。

相关内容

最新更新