在GAS中,
Code.gs
function myFunction() {
var sheet2 = SpreadsheetApp.getActivesheet();
var firstset = sheet2.getRange('B1:B10').getValues();
Logger.log(firstset)
var found = firstset.indexOf('[re]')
Logger.log(found)
}
在Google电子表格范围B1:B10中,
B1 we
B2 we
B3 re
B4 ef
B5 ge
B6 er
B7 fe
B8 th
B9 rg
B10 pq
代码的答案应该是2,但是,Log显示-1(不匹配)。任何帮助
答案 0 :(得分:3)
在一个简单的for循环中:
function myFunction() {
var sheet2 = SpreadsheetApp.getActiveSheet();
var firstset = sheet2.getRange('B1:B10').getValues();
for(var n in firstset){
if(firstset[n][0]=='re'){break}
}
Logger.log(n);
}
答案 1 :(得分:0)
如果您将数据放在一行而不是列中,则代码可以像这样使用:
function myFunction() {
var sheet2 = SpreadsheetApp.getActivesheet();
var firstset = sheet2.getRange('A1:J1').getValues();
Logger.log(firstset)
var found = firstset[0].indexOf('[re]')
Logger.log(found)
}
indexOf
- 只能在一维数组中搜索 - 因此在我的示例中使用firstset[0].indexOf('[re]')
.getValues()
- 总是返回二维数组,即使只有一行或一列。
答案 2 :(得分:0)
这对我有用。
这是一种修改后的方法,原件并没有给我正确的结果。
Array.prototype.findIndex = function(search)
{
if(search == "") return -1;
for(var t = 0; t < this.length; t++)
{
if(this[t].search(search) >=0)
{break}
}
return t-1;
}
<强> USAGE 强>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var index = fruits.findIndex("Apple");
//"Apple" is located at position 2 in the array.
Logger.log("Index of 'Apple' is: " + index);
注意强>
使用此方法按名称获取工作表列的索引时,将索引增加1以使用sheet.getRange(rowIndex,columnIndex)。
var range = sheet.getRange(row, (index+1));