Javascript 如何使用IF条件更改for循环中的列值
我是谷歌应用程序脚本的新手。我有一个数组,我需要将第7列(gci)中的值更改为第6列(referealCMM)中的值,如果第5列(reference)中的值=ABC。以下是脚本:Javascript 如何使用IF条件更改for循环中的列值,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我是谷歌应用程序脚本的新手。我有一个数组,我需要将第7列(gci)中的值更改为第6列(referealCMM)中的值,如果第5列(reference)中的值=ABC。以下是脚本: function netincome() { var report = SpreadsheetApp.getActiveSpreadsheet(); var data = report.getSheetByName("Test"); var dataRange = data.getDat
function netincome() {
var report = SpreadsheetApp.getActiveSpreadsheet();
var data = report.getSheetByName("Test");
var dataRange = data.getDataRange();
var lastrow = dataRange.getLastRow();
var gci = data.getRange(1, 7, lastrow, 1).getValues ();
var referral = data.getRange(1, 5, lastrow, 1).getValues();
var referralcomm = data.getRange(1, 6, lastrow, 1).getValues();
for (var i = 0; i<=lastrow; i ++) {
if (referral == "ABC") {
gci.setValue(referralcomm);
}
}
}
函数netincome(){
var report=SpreadsheetApp.getActiveSpreadsheet();
var数据=report.getSheetByName(“测试”);
var dataRange=data.getDataRange();
var lastrow=dataRange.getLastRow();
var gci=data.getRange(1,7,lastrow,1).getValues();
var reference=data.getRange(1,5,lastrow,1).getValues();
var referralcomm=data.getRange(1,6,lastrow,1).getValues();
对于(var i=0;i尝试以下方法:
function netincome() {
var report = SpreadsheetApp.getActive();
var data = report.getSheetByName("Test");
var dataRange = data.getDataRange();
var lastrow = dataRange.getLastRow();
var gci = data.getRange(1, 7, lastrow, 1).getValues ();
var referral = data.getRange(1, 5, lastrow, 1).getValues();
var referralcomm = data.getRange(1, 6, lastrow, 1).getValues();
for (var i=0;i<lastrow;i++) {
if (referral[i][0] == "ABC") {
gci[i][0]=referralcomm[i][0]);
}
}
data.getRange(1, 7, lastrow, 1).setValues(gci);
}
选项1返回一个错误“TypeError:无法读取未定义”的属性“0”作为行“if(reference[i][0]=“ABC”){。选项2工作得很好-谢谢!!(更正了几个错误==to=,或to oR,以及oA to ov)
function netincome() {
var ss=SpreadsheetApp.getActive();
var sh==ss.getSheetByName('Test');
var vs=sh.getDataRange().getValues();
var or=sh.getRange(1,7,sh.getLastRow(),1);
var ov=oR.getValues();
vs.forEach(function(r,i){
if(r[4]=="ABC") {
oA[i][0]=r[5];
}
});
or.setValues(ov);
}