2016-11-16 3 views
0

В Google Таблицах с использованием Google Apps Script я хотел бы получить значение ячейки R33 в качестве строки поиска (легко), найти следующий экземпляр этой строки поиска в S: S (Я в тупик), затем активируйте ячейку, в которой значение было найдено (легко). В частности, я не могу понять, как сделать простой поиск (по существу, vlookup). Я пробовал цикл через колонку и сравнивал следующее:Используйте строку поиска, чтобы найти ячейку

function Vlookupscript(name, sheet, columnIndexWithNames, rowIndexToStart) {  
    var maxRows = sheet.getLastRow() - 1; 
    var range = sheet.getRange(rowIndexToStart, columnIndexWithNames, maxRows); 
    var numRows = range.getNumRows(); 
    var index = -1; 
    var cell; 
    var value; 

    for (var i = 1; i <= numRows; i++) { 
    cell = range.getCell(i, 1); 
    value = cell.getValue(); 
    if (value === name) { 
     index = i; 
    } 
    } 
    return index; 
} 

где name - значение для поиска.

Однако я не получаю никакого вывода, даже в конце цикла, используя logger.log(i). Я уверен, что есть более простой способ; например, могу ли я загрузить столбец в виде массива и выполнить поиск этого массива, получить индекс, а затем активировать ячейку с соответствующим индексом?

ответ

2

Существует гораздо более быстрый способ. В настоящее время вы вызываете SpreadsheetApp каждый раз, когда хотите проверить значение, которое занимает некоторое время. Прежде всего, вы должны, вероятно, сделать maxRows = sheet.getLastRow() и избавиться от - 1

Я буду считать, что name - это то, что вы хотите найти. Таким образом, вы можете сделать следующее

values = SpreadsheetApp.getActiveSheet().getRange('S:S').getValues() 
for (i = 0; i = values.lenght; i++){ 
    if (values[i][0] == name) { 
    sheet.getRange(i+1, 19).activate() 
    return 
    } 
} 

вы можете также сделать значения с

values = SpreadsheetApp.getActiveSheet().getRange(1,19,maxRows-1,1).getValues()

при условии, что вы изменили, чтобы расслабить - 1 для переменной maxRows. Это будет проходить через все значения, и если значение соответствует, то оно устанавливает ячейку как активную

Смежные вопросы