Я пытаюсь создать простой макрос, который должен проходить через заданный диапазон ячеек и возвращать ячейку рядом с ячейкой, соответствующей некоторому содержимому.
На некоторых форумах я нашел строку, которая должна работать для объектов ячеек:
someCell.Offset(0,colIndex)
Но из отладки я вижу, что входные данные из выбора - это набор Variant/String, а не объект "ячейка".
Есть ли способ для моей функции получить диапазон ячеек вместо Variant/Strings?
Также мой полный код:
Function RVLOOKUP(target, criteriaCellRange, colIndex)
Dim found as Boolean
Dim resultCell as Variant
For Each cell In criteriaCellRange
matchPosition = instr(target,cell)
If matchPosition > 0 Then
found = True
resultCell = cell
Exit For
end if
Next cell
If found Then
' Here resultCell seems to be just a String not an actual cell object
RVLOOKUP = resultCell.Offset(0,colIndex)
else
RVLOOKUP = "#NoMatch"
end if
End Function
ОБНОВЛЕНО: предполагается, что код находит ячейку из attributeCellRange, которая является точным или частичным совпадением текста в целевой ячейке, и возвращает ячейку с горизонтальным смещением colIndex от совпадающей ячейки из critCellRange. Таким образом, в основном VLOOKUP, который также соответствует частичному тексту.
Так... ЗДЕСЬ у нас такая же проблема, и ответ там подтверждает мои подозрения:
При передаче диапазона ячеек в качестве параметра функции я считаю, что функция получает либо строки, либо значения. Ноль - это просто значение пустой ячейки. Не видя ваш код, трудно предложить решение вашей проблемы.
Кстати, я использую Libreoffice 5.4.4.2.