gpt4 book ai didi

javascript - 获取电子表格行的匹配值

转载 作者:行者123 更新时间:2023-11-27 23:45:26 25 4
gpt4 key购买 nike

我是 Google Apps 脚本的新手,我正在尝试为电子表格制作一个脚本,在其中可以获得匹配值的范围。但是单元格值没有像 .getRow().getRange() 或类似的函数,因为它是一个字符串值。这是我的代码,

function getInfo() {
var ss1 = sheet1.getSheetByName("Sheet1");
var ss2 = sheet2.getSheetByName("Rates");
var getCountry = ss1.getRange(ss1.getLastRow(), 11).getValue();
var countryRange = ss2.getRange(2, 1, ss2.getLastRow(), 1).getValues();
var getZone = 0;

for (var i = 0; i < countryRange.length; i++) {
if (countryRange[i] == getCountry) {
var getrow_cr = countryRange[i].getRow(); //.getRow() doesn't apply here for string value
getZone = ss2.getRange(getrow_cr + 1, 2).getValue();
}
}
Logger.log(getZone);
}

如何获取匹配字符串的行,以便获取匹配单元格值旁边的单元格值?

最佳答案

您的循环变量 i 从 0 开始,在您的情况下相当于第 2 行。为了帮助保持清晰,您可以使用命名变量来跟踪带有数据的第一行:

var firstrow = 2;

然后,当您找到匹配项时,它所在的电子表格行为 i + firstrow

更新的代码:

function getInfo() {
var ss1 = sheet1.getSheetByName("Sheet1");
var ss2 = sheet2.getSheetByName("Rates");
var getCountry = ss1.getRange(ss1.getLastRow(), 11).getValue();
var firstrow = 2;
var countryRange = ss2.getRange(firstrow, 1, ss2.getLastRow(), 1).getValues();
var getZone = 0;

for (var i = 0; i < countryRange.length; i++) {
if (countryRange[i][0] == getCountry) {
var getrow_cr = i + firstrow;
getZone = ss2.getRange(getrow_cr, 2).getValue();
break; // Found what we needed; exit loop
}
}
Logger.log(getZone);
}

由于 countryRange 是一个二维数组,每行一个元素,因此引用行 i 中的值的正确方法是 countryRange[i] [0]。如果您只是比较 countryRange[i],则您将依赖 JavaScript 解释器将“行”强制转换为 String 对象。

关于javascript - 获取电子表格行的匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33242237/

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