Здравствуйте. Имеется собственная функция VLOOKUP (ВПР) с доработкой по поиску n найденного значения. Подскажите пожалуйста как можно сделать автоматическую раскраску тех значений которые нашел VLOOKUP (ВПР). Все данные в примере.
Здравствуйте. Имеется собственная функция VLOOKUP (ВПР) с доработкой по поиску n найденного значения. Подскажите пожалуйста как можно сделать автоматическую раскраску тех значений которые нашел VLOOKUP (ВПР). Все данные в примере.Flatcher
Применение заливки (возможно и другие действия) прерывают работу собственной функции и функция возвращает ошибку "#ЗНАЧ!". Поэтому нужно отказаться от собственной функции, а запускать макрос другим способом. Например, можно использовать событие "Worksheet_Change".
Применение заливки (возможно и другие действия) прерывают работу собственной функции и функция возвращает ошибку "#ЗНАЧ!". Поэтому нужно отказаться от собственной функции, а запускать макрос другим способом. Например, можно использовать событие "Worksheet_Change".Karataev
просто так изменять заливки нельзя - это приведет к ошибке, (Karataev уже написал об этом) а вот цвет шрифта скопировать можно. : [vba]
Код
Function VLOOKUP2(Table As Range, SearchColumnNum As Integer, SearchValue As Variant, _ N As Integer, ResultColumnNum As Integer) Dim i As Integer Dim iCount As Integer
For i = 1 To Table.Rows.Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Application.Caller.Cells(1, 1).Font.Color = Table.Cells(i, ResultColumnNum).Font.Color Exit For End If Next i End Function
[/vba] Или заменить функцию на макрос, но тогда не будет работать отмена действий. можно попробовать почитать эту тему там Gustav, умудрился изменять и цвет ячейки - но там есть свои нюансы.
просто так изменять заливки нельзя - это приведет к ошибке, (Karataev уже написал об этом) а вот цвет шрифта скопировать можно. : [vba]
Код
Function VLOOKUP2(Table As Range, SearchColumnNum As Integer, SearchValue As Variant, _ N As Integer, ResultColumnNum As Integer) Dim i As Integer Dim iCount As Integer
For i = 1 To Table.Rows.Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Application.Caller.Cells(1, 1).Font.Color = Table.Cells(i, ResultColumnNum).Font.Color Exit For End If Next i End Function
[/vba] Или заменить функцию на макрос, но тогда не будет работать отмена действий. можно попробовать почитать эту тему там Gustav, умудрился изменять и цвет ячейки - но там есть свои нюансы.SLAVICK
SLAVICK, можно и изменить цвет шрифта. Только мне наоборот надо - чтобы цвет менялся на листе данные . Цель понять какие данные впр "втащил" в отчет а какие нет
SLAVICK, можно и изменить цвет шрифта. Только мне наоборот надо - чтобы цвет менялся на листе данные . Цель понять какие данные впр "втащил" в отчет а какие нетFlatcher