【发布时间】:2021-09-16 13:35:31
【问题描述】:
我制作了一个小型搜索框来从数据表中检索值。由于某种原因,它只循环一次。这也是我第一次在谷歌表格中尝试一些东西,所以如果我想在 B 列中搜索一个字符串,那么 SEARCH_COL_IDX 应该是 1 对吗?
我放了几个记录器来检查这个过程。我确实看到了Logger.log(str)、Logger.log("Check") 和Logger.log("Check2)。后两者只有一次,应该是多次imo。 The Logger.log(row[#])根本看不到,说明什么也找不到。
我还尝试使用if(row[SEARCH_COL_IDX] = str) { 来查看它的位置。比Logger.log(row[#]) 确实回来了,但是来自不同的行和列。我做错了什么,但我找不到它..有什么建议吗?
var SPREADSHEET_NAME = "Database";
var SEARCH_COL_IDX = 1;
var RETURN_COL_IDX= 1;
function searchStr(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Userform");
var str = formSS.getRange("d17").getValue();
Logger.log(str);
var values = ss.getSheetByName("Database").getDataRange().getValues();
for (var i = 0; i < values.length; i++) {
Logger.log("check");
var row = values[i];
Logger.log("check2");
if(row[SEARCH_COL_IDX] == str) {
formSS.getRange("d3").setValue(row[0]);
Logger.log(row[0]);
formSS.getRange("d5").setValue(row[1]);
Logger.log(row[1]);
formSS.getRange("d7").setValue(row[2]);
Logger.log(row[2]);
formSS.getRange("d9").setValue(row[3]);
Logger.log(row[3]);
formSS.getRange("d11").setValue(row[4]);
Logger.log(row[4]);
formSS.getRange("d13").setValue(row[5]);
Logger.log(row[5]);
}
Logger.log("nothing found");
return row[RETURN_COL_IDX];
}
【问题讨论】:
标签: for-loop google-apps-script