gpt4 book ai didi

javascript - 为什么我的 Google 脚本在每次执行后都会添加 3 行?

转载 作者:行者123 更新时间:2023-12-02 21:32:00 26 4
gpt4 key购买 nike

我整理了以下代码来检查B列<>A列是否。如果为 TRUE,则将A 列数据粘贴到B 列中。

这工作正常除了每次执行后都会添加 3 行!我就是不明白为什么。

有人能解释一下为什么会发生这种情况吗?我尝试分解这个脚本以了解每个部分的机制,但无法得出结论。

function RefreshSheets() {


var ss = SpreadsheetApp.openById("1YWjysA9uuGez3grhvMR3_JaAuBp5AsigOmDbxlk7d6c");
var sh = ss.getSheetByName("Front Sheet");

var rA = sh.getRange(6, 1, sh.getLastRow() - 0, 1);
var vA = rA.getValues();

var rD = sh.getRange(6, 4, sh.getLastRow() - 0, 1);
var vD = rD.getValues();

var rB = sh.getRange(6, 2, sh.getLastRow() - 0, 1);
var vB = rB.getValues();


for (var i = 0; i < vB.length; i++) {
if (vB[i][0] != vA) {
vB[i][0] = vA;
}
}
rB.setValues(vA)

}

最佳答案

尝试这样:

范围中的第三个参数是行数而不是最后一个行号。如果您使用最后一个行号但不从第 1 行开始,那么您将直接从数据底部进行迭代。

vA 和 vB 是二维数组,因此它们需要两个索引来指定单个单元格。

function RefreshSheets() {
var ss = SpreadsheetApp.openById("1YWjysA9uuGez3grhvMR3_JaAuBp5AsigOmDbxlk7d6c");
var sh = ss.getSheetByName("Front Sheet");
var rA = sh.getRange(6,1,sh.getLastRow()-5,1);
var vA = rA.getValues();
var rD = sh.getRange(6,4,sh.getLastRow()-5,1);
var vD = rD.getValues();
var rB = sh.getRange(6,2,sh.getLastRow()-5,1);
var vB = rB.getValues();
for (var i=0;i<vB.length;i++) {
if (vB[i][0] != vA[i][0]) {
vB[i][0] = vA[i][0];
}
}
rB.setValues(vA)

}

关于javascript - 为什么我的 Google 脚本在每次执行后都会添加 3 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60600506/

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