gpt4 book ai didi

Javascript "for"Google表格中的单元格数据比较循环

转载 作者:行者123 更新时间:2023-12-03 07:09:18 24 4
gpt4 key购买 nike

我刚刚开始使用 js,我正在尝试在 Google 表格中创建一个脚本:

https://docs.google.com/spreadsheets/d/1mNBThO2gBpvqQxrLE_hDxLuV--cTc42K8q37ZQG9TCc/edit?usp=sharing

function makeVariants() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("VARIANTSOK");
var righe = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var lastCell = sheet.getRange(righe, lastColumn);
Logger.log(lastCell.getValue());
for (i=0; i<righe; i++) {
if (sheet.getRange(righe[i], 2, 1, 1) = sheet.getRange(righe[i-1], 2, 1, 1)) {righe[i].clear();}
}
}

如何循环以便将 B 列“B3”中的第二个单元格与上面的“B2”进行比较,如果相同则删除?

我尝试获取最后一行,将最后一行增加 + 1 并与上面的行进行比较,最终被删除。我很难将其放入循环中。

所附表格中的 B11 和 B10、B8、B6、B4 和 B3 应删除。

最佳答案

这里错误太多,无法详分割析。我在下面添加了简短的评论,但这是执行您尝试执行的操作的正确方法。

function makeVariants() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("VARIANTSOK");
var colValues = sheet.getRange(1, 2, sheet.getLastRow(), 1).getValues();
for (var i = colValues.length - 1; i >= 1; i--) {
if (colValues[i-1][0] == colValues[i][0]) {
sheet.getRange(i+1, 2).clear();
}
}
}

此脚本获取 B 列中的值,然后从下到上循环遍历它们,以便删除不会影响后续比较。例如,如果循环

a
a
a
b

从上到下,结果将是

a

a
b

其中第三个 a 未被删除,因为它与之前清除的单元格不匹配。从下往上循环时,结果是正确的:

a


b

脚本中的一些错误

  • a = b 是赋值,而不是比较。了解 a == ba === b
  • sheet.getLastRow(); 返回一个数字,因此 righe[i] 没有任何意义
  • getRange 返回指向范围的指针,而不是该范围内的值。所以用这个来比较是没有意义的。将 getValue 应用于单个单元格区域以获取其值。更好的是,使用 getValues 同时获取一堆值,就像我上面所做的那样。

关于Javascript "for"Google表格中的单元格数据比较循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36679321/

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