Как отфильтровать ячейки Excel по цвету интерьера ячейки? - PullRequest
0 голосов
/ 23 августа 2011

Я хотел бы отфильтровать строки в большом листе Excel - я хотел бы показать только ячейки, которые имеют определенный цвет интерьера (например, желтый). Есть ли простой способ сделать это? Моя идея написать функцию VBA (что-то похожее здесь :

*public function kolory(komorka as range)
kolory-komorka.interior.color
end function*

Когда у меня есть эта функция, я могу генерировать определенный код для каждого цвета, а затем использовать его для фильтрации (я даже могу расширить его, добавив структуру выбора вариантов, которая переведет этот код в читаемую человеком информацию). К сожалению, Excel не видит мою функцию (хотя макросы включены), и во многих случаях я не могу использовать код, написанный на VB.

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Это правильный синтаксис для вашей функции:

Public Function kolory(komorka As Range) As Long
    kolory = komorka.Interior.Color
End Function

т.е. избавиться от этих * и заменить - на =.

В вашем листе Excel,чтобы вернуть цвет ячейки A1, введите =kolory(A1) в другой ячейке.

Конечно, если вы просто пишете код VBA, вам не нужна функция kolory, так как это просто оболочка дляkomorka.Interior.Color ...

0 голосов
/ 24 августа 2011

Вы имеете в виду, что он не отображается в окне макросов?Вы хотите, чтобы это отображалось как функция рабочего листа / пользовательская функция?Если вы хотите использовать его как UDF, вам нужно иметь тип возвращаемого значения и поместить код в обычный модуль.код будет выглядеть так:

public function kolory(komorka as range) as integer
    dim cellColor as integer
    cellColor = komorka.interior.color
    kolory = cellColor
end function

Если вы пытаетесь использовать это как отдельную подпрограмму, вы не сможете этого сделать, потому что вам требуется необязательный ввод (komorka as range).Он должен вызываться из некоторой содержащей функцию / подпрограммы, которая может передать ему значение komorka.Если у вас есть что-то, что может вызвать вашу функцию kolory, вы можете использовать это в своем коде.Код будет выглядеть так же, как и выше.

...