我有一张表,其中包含不同列中的一些用户详细信息,在最后一栏" G"我有一个唯一的ID,即字符串' UID'我想迭代每一行,直到找到G列中有UID的那一行,然后我需要它返回该用户的行号。
我已经选择了不同的教程和答案,并提出了以下内容。我已经尝试过调试,它会继续为行返回0.0。
有些用户没有唯一ID,可能是问题吗?
有什么想法吗?
var data = getQueryString("?"+claim_code);
var UID = data.uniqueid;
Logger.log(UID);
// Find out the row from the UID
var column = response.getRange('G:G');
var values = column.getValues();
var row = 0;
while ( values[row][0] == UID ) {
row++;
Logger.log(row);
}
答案 0 :(得分:0)
您只需对值进行操作并使用!= 因为这样,它会超过你的值,直到它找到你正在查看的行。 顺便说一句,您可能希望将范围限制为您拥有的特定行数。它将比当前G:G运行得更快,导致它在所有行上运行。 以下代码将为您找到值:
while ( values[row] != UID ) {
row++;
Logger.log(row);
}
答案 1 :(得分:0)
您可以获取工作表的所有值,然后迭代每个值以查找您的值: 示例如下:https://docs.google.com/spreadsheets/d/1LGv_u_z_DuUpW01o8yMpHkceM3N45G3ruqQ8JtHkNEs
function find(){
var idToFind = "A12347";
var userRow = findID(idToFind);
Logger.log(userRow);
}
function findID(userID) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var values = sheet.getSheetValues(2, 1, sheet.getLastRow()-1, sheet.getLastColumn());
for(var x=1; x<values.length; x++){
if(userID == values[x][6]){
return x;
}
}
return 0; // Error, not found userID
}