如何根据单元格的值获取范围内的单元格



我有一个谷歌工作表,有这个谷歌应用程序脚本:

//function formatReport(){
// let sheet = SpreadsheetApp.getActiveSpreadsheet();
// let header = sheet.getRange('A1:C1');
// header.setBackground('#eeeeee')
//}
function getCellByValue(cValue){

}
var sheet = SpreadsheetApp.getActiveSpreadsheet();
console.log(sheet.getRange('D2:D1001').getCellByValue('@bongo').toString());

const doGet = (event = {}) => {
const { parameter } = event;
const { type = 'badrequest' } = parameter;
if (type == 'get'){

let select = '3';

var name = sheet.getRange('A' + select).getValue();
var icon = sheet.getRange('B' + select).getValue();
var message = sheet.getRange('C' + select).getValue();
}


let jsonTempl = {
'type': type,
'name': name,
'icon': icon,
'message': message
};
let myJSON = JSON.stringify(jsonTempl);
return ContentService.createTextOutput(myJSON).setMimeType(ContentService.MimeType.JSON);
};

function doPost(e) {
return true;
}

我需要只使用单元格的值从一个范围中获取一个单元格。例如,如果我有一个范围A1:A3,值为"first,second,third",我想只使用名称"second"来获得该范围中的第二个;

你在评论中发布的示例:

function findInRange(range, findtext) {
let ranger = sheet.getRange(range);
for (var tick = 0; tick > ranger.getValues().length; tick++) {
if (ranger.getValues()[tick] == findtext) {
var out = tick;
}
console.log(ranger.getvalues()[tick]);
}
}

经过实验,我找到了的答案

function findInRange(range,findtext){
let ranger = sheet.getRange(range);
var tickr = 0;
while(tickr < ranger.getValues().length){

if (ranger.getValues()[tickr] == findtext){
var out = tickr;
}
tickr += 1;
}
return out;
}

在range参数中,您只需输入范围,那么文本就是要查找的文本的字符串。如果找到,它将返回该范围内的数字。如果未找到,则输出未定义。

最新更新