gpt4 book ai didi

javascript - 第二次调用函数时出错

转载 作者:行者123 更新时间:2023-11-28 13:34:04 24 4
gpt4 key购买 nike

我有一个函数,如果我只调用它一次,它第一次工作得很好,但是当我在 for 循环中重复调用它时,我收到以下错误:

类型错误:getNamedRange 不是函数,它是字符串。

搜索此错误后,我发现这是一个 JavaScript 错误,而不是 Google Apps 脚本错误。我没有太多使用 javascript,但我怀疑它可能与我从函数返回值的方式有关。

这是调用该函数的代码:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var baseSheet = ss.getSheetByName("Base");

var catCol = 9;
var riskAreaColumn = 10;

var numRows = baseSheet.getDataRange().getNumRows();

// I am not using this var, should I be?
var data = baseSheet.getDataRange().getValues();

var cell;
var rangeName;
var range;
var rule;

for(var i=2; i<numRows; i++){

cell = baseSheet.getRange(i, riskAreaColumn);

rangeName = getNamedRange("CategoryRiskRange",baseSheet.getRange(i, catCol).getValue());

range = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(rangeName);

rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();

cell.setDataValidation(rule);

}

SpreadsheetApp.flush();
}

这是被调用的函数:

function getNamedRange(categoryRange, category) {

var categoryList = SpreadsheetApp.getActive().getRangeByName(categoryRange).getValues();
for (var i = 0; i < categoryList.length; i++) {

if (categoryList[i][0] == category) {
getNamedRange = categoryList[i][1];
return getNamedRange;
}
}
}

第一次通过 for 循环有效,第二次出现上述错误。感谢您阅读本文,希望您能明白。

最佳答案

您将在此处覆盖函数定义:

getNamedRange = categoryList[i][1];

这会起作用:

 if (categoryList[i][0] == category) {
return categoryList[i][1];
}

关于javascript - 第二次调用函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22763801/

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