Я изучаю скрипт Google, когда сталкиваюсь с проблемой, для которой не могу найти решение.
У меня есть функция, которая принимает несколько нескольких строк и одну ячейку в качестве параметров.
Я предполагаю, что передача ячейки не совпадает с передачей ее значения (слишком длинная строка)
Пожалуйста, найдите прикрепленный код:
//return id assigned to data(cell) sheetname
function findInColumn(column, data, colName, sheetname) {
/*
data = cell (cell value is 'bag_backpack.png') does not work
var range = SpreadsheetApp.getActiveRange();
var col = range.getColumn();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange(row,col+1);
data = range2.getValue(); (cell value is 'bag_backpack.png') <---fail too
data = 'bag_backpack.png'; <---works
*/
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetname);
var column = sheet.getRange(column + ":" + column); // like A:A
var values = [];
for (var index = 0; index < column.getValues().length; index++) {
values.push(column.getValues()[index][0])
}
var colIndex = getByName(colName, sheetname);
var rowIndex = values.indexOf(data);
//grab id value of data
var range = sheet.getRange(rowIndex+1,colIndex+1);
var data = range.getValue();
return data
}
Хотя я ценю ваши отзывы и нуждаюсь в них, я прошу вас иметь в виду, что я в лучшем случае новичок, и я потратил несколько часов на поиски, прежде чем спросить здесь.
Спасибо за вашу помощь.
Редактировать : bag_backpack.png
- это содержимое ячейки, которую я ищу в столбце, чтобы получить номер строки указанной ячейки.
var rowIndex = values.indexOf(data);
Возвращает нужный мне индекс.
Однако ... если я передаю в функцию ячейку вместо строки, например, ячейку в другом месте с bag_backpack.png
в качестве содержимого, или даже получаю из нее указанное значение:
var range = SpreadsheetApp.getActiveRange();
var col = range.getColumn();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange(row,col+1);
data = range2.getValue(); (cell value is 'bag_backpack.png') <---fail too
В указанном случае:
var rowIndex = values.indexOf(data);
выдает -1
вместо желаемого индекса.