Loops 如何修复:循环无法运行到完成
我试图在列中搜索一组单词,并在行的末尾添加yes或no。脚本在前几个条目中运行,但中途暂停 我正在使用textFinder进行搜索并提取结果行,以便编辑“是”和“否”Loops 如何修复:循环无法运行到完成,loops,google-apps-script,google-sheets,nested-loops,Loops,Google Apps Script,Google Sheets,Nested Loops,我试图在列中搜索一组单词,并在行的末尾添加yes或no。脚本在前几个条目中运行,但中途暂停 我正在使用textFinder进行搜索并提取结果行,以便编辑“是”和“否” function onOpen() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = []; menuEntries.push({ name: "test", functionName: "test" }); ss.addMenu
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({ name: "test", functionName: "test" });
ss.addMenu("Commands", menuEntries);
}
function test() {
var backupCol = 2
var dataStartRow = 1
var row;
var searchString;
var textfinder;
var searchResults;
var dataSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("input");
var dataLastRow = dataSheet.getLastRow();
dataSheet.getRange(dataStartRow, backupCol, dataLastRow).setValue("NO");
for (var i = 0; i < yesArr.length; i++) {
searchString = yesArr[i];
textfinder = dataSheet.createTextFinder(searchString);
searchResults = textfinder.findAll();
for (var i = 0; i < searchResults.length; i++) {
row = searchResults[i].getRow();
dataSheet.getRange(row, backupCol).setValue("YES");
}
}
}
函数onOpen(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var指数=[];
push({name:“test”,functionName:“test”});
ss.addMenu(“命令”,菜单);
}
功能测试(){
var backupCol=2
var dataStartRow=1
var行;
var搜索字符串;
var文本查找器;
var搜索结果;
var数据表=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“输入”);
var dataLastRow=dataSheet.getLastRow();
dataSheet.getRange(dataStartRow、backupCol、dataLastRow).setValue(“否”);
对于(变量i=0;i我希望所有包含yesArr值的条目的输出在行的B列中都有一个yes。但是实际输出只工作到一半您的问题在于嵌套的
for循环
在两个循环中使用i
作为索引会给编译器带来问题
将第二个for循环
索引更改为x
将解决此问题
for (var i = 0; i < yesArr.length; i++) {
searchString = yesArr[i];
textfinder = dataSheet.createTextFinder(searchString);
searchResults = textfinder.findAll();
for (var x = 0; x < searchResults.length; x++) {
row = searchResults[x].getRow();
dataSheet.getRange(row, backupCol).setValue("YES");
}
}
for(变量i=0;i
问题出在嵌套的for循环中
在两个循环中使用i
作为索引会给编译器带来问题
将第二个for循环
索引更改为x
将解决此问题
for (var i = 0; i < yesArr.length; i++) {
searchString = yesArr[i];
textfinder = dataSheet.createTextFinder(searchString);
searchResults = textfinder.findAll();
for (var x = 0; x < searchResults.length; x++) {
row = searchResults[x].getRow();
dataSheet.getRange(row, backupCol).setValue("YES");
}
}
for(变量i=0;i
您的电子表格有多大,成本可能太高,您需要分两部分进行计算。如果在嵌套的For循环中不使用“i”作为两个索引,则很可能会混淆。将你的第二个for循环更改为“x”@carrohead请提供你的工作表截图,以便我们能够识别它。@SweetChillyPhilly哦,是的,我犯了一个多么新手的错误!将其更改为x解决了问题,谢谢!您的电子表格有多大,成本可能太高,您需要分两部分进行计算。如果在嵌套的For循环中不使用“i”作为两个索引,则很可能会混淆。将你的第二个for循环更改为“x”@carrohead请提供你的工作表截图,以便我们能够识别它。@SweetChillyPhilly哦,是的,我犯了一个多么新手的错误!将其更改为x解决了问题,谢谢!