javascript - 如何使用 IF 条件更改 for 循环中的列值
问题描述
我是 Google Apps 脚本的新手。我有一个数组,如果第 5 列(推荐)== ABC 中的值,我需要将第 7 列(gci)中的值更改为第 6 列(referalcomm)中的值。这是脚本:
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);
}
}
}
但是,当 Col 5 == ABC 时,脚本不会将 Col 7 的值更改为 Col 6 中的值。感谢所有的帮助。
解决方案
尝试这个:
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);
}
我认为这是同一件事
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);
}
推荐阅读
- python-3.x - 如何在 Visual Studio 2017 上安装 pygame?
- r - 如何在单独的页面上为数据集中的每一列创建直方图
- python - 如何抓取嵌套的 div 和 ol 类
- spring - Hystrix fallback method not called if Feign Client manually created with Feign.Builder
- python - 从 csv 到 json 从两个分类变量(列)中选择类别作为 json 文件的键
- list - Flutter: Reorderable AND Animated ListView - any idea?
- ruby - 新手问题 - 为什么这个循环不起作用?
- node.js - 如何将 axios 响应保存到变量,以便在 axios 外部使用?
- mysql - 尝试在 JBOSS 上安装 EJBCA 时出现问题 - 为什么 Mysql 数据库(“ejbca”)为空
- reactjs - this.setState 到子对象