gpt4 book ai didi

javascript - Google 脚本上的循环忽略 if 语句

转载 作者:行者123 更新时间:2023-12-01 00:21:03 24 4
gpt4 key购买 nike

我已经创建了一个函数,可以插入新行并将另一张表中的一些数据复制到第一列和第二列。如果 P 和 Q 列一起出现 N/A 错误,我希望我的函数从同一行的 A 列和 B 列复制数据。它实际上可以工作,添加行和其他内容,但它会复制所有数据,即使逐行没有 N/A 错误

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MainShops");
var ssd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ShopsData");



function AddShops() {



for(j=2; j < 278; j++) {

var DoubleRowCheck = ssd.getRange(j, 16, 1, 2).getValues();

if (DoubleRowCheck == "#N/A", "#N/A") {

var ShopsToAdd = ssd.getRange(j, 1, 1, 2).getValues();
var LastRow = ss.getLastRow();
var LastRowPlusOne = LastRow + 1;
ss.insertRowAfter(LastRow);
ss.getRange(LastRowPlusOne, 1, 1, 2).setValues(ShopsToAdd);

}

else {

continue;

}
}

}

最佳答案

您的代码中的问题在于该语句:

 if (DoubleRowCheck ==  "#N/A", "#N/A")

这将始终返回“true”。 getValues()用于初始化值的方法 DoubleRowCheck返回一个二维数组(行、列)。您应该在“if”语句中分别检查第一行(也是唯一一行)中的两列值,以验证它们是否等于“#N/A”:

if (DoubleRowCheck[0][0] == "#N/A" && DoubleRowCheck[0][1] == "#N/A"){...}

另外,请注意:

(1) if 语句中的最后四行可以替换为 append(ShopsToAdd)方法(参见documentation)

(2) else 语句不是必需的,“for”循环将继续,直到到达 j < 278限制或 break陈述。

关于javascript - Google 脚本上的循环忽略 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59425754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com