Уважаемые знатоки, добрый день!
Есть задача, но правильное решение найти не могу(
В чем суть:
Надо найти формулой UDF любое значение на любом листе книги в любом месте и выдать результат смещением на x(-x) и (или) y(-y) или без смещения.
Вот формула, которая решает задачу:
Вроде все просто, но поиск осложняется тем, что в книге таких листов ~100 и формула должна быть на каждом листе и не по одному разу.
И данные на листах (таб1, таб2, ...) могут быть разбросаны, т.е. одно и тоже значение на разных листах может быть в разных ячейках.
Плюс есть некая сводная таблица, куда с остальных листов (таб1, таб2, ...) подтягиваются нужные значения.
Соответственно, при работе с этой книгой Excel начинает максимально тормозить.
Для ускорения работы, я отключаю автоматический пересчет формул в книге, но это костыльное решение и хотелось бы формулу или ускорить или как-то усовершенствовать, но знаний не хватает.
P.S. Структуру книги менять нельзя (к сожалению).
Есть задача, но правильное решение найти не могу(
В чем суть:
Надо найти формулой UDF любое значение на любом листе книги в любом месте и выдать результат смещением на x(-x) и (или) y(-y) или без смещения.
Вот формула, которая решает задачу:
Код |
---|
Function findVal(findSheet As String, findTxt As String, Optional offsX As Integer, Optional offsY As Integer) Dim xCell As Range, wb As Workbook Set wb = ThisWorkbook On Error Resume Next For Each xCell In wb.Sheets(findSheet).UsedRange If xCell.Value = findTxt Then findVal = xCell.Offset(offsX, offsY).Value Exit Function End If Next End Function |
И данные на листах (таб1, таб2, ...) могут быть разбросаны, т.е. одно и тоже значение на разных листах может быть в разных ячейках.
Плюс есть некая сводная таблица, куда с остальных листов (таб1, таб2, ...) подтягиваются нужные значения.
Соответственно, при работе с этой книгой Excel начинает максимально тормозить.
Для ускорения работы, я отключаю автоматический пересчет формул в книге, но это костыльное решение и хотелось бы формулу или ускорить или как-то усовершенствовать, но знаний не хватает.
P.S. Структуру книги менять нельзя (к сожалению).
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
который возвращает нужные тебе данные из любого объекта, даже если их там нет...