如何根据细胞内部颜色过滤Excel细胞?

时间:2011-08-23 10:56:04

标签: colors filter excel-vba vba excel

我想过滤大excel表中的行 - 我想只显示具有特定内部颜色的单元格(例如黄色)。 有没有简单的方法呢?我的想法是写一个VBA函数 (simillar是here

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

当我有这个功能时,我能够为每种颜色生成特定的代码,然后用它来过滤它(我甚至可以通过添加选择案例结构来扩展它,这将把这个代码翻译成人类可读的信息)。 不幸的是Excel没有看到我的功能(虽然启用了宏),在很多情况下我无法使用VB编写的代码。

2 个答案:

答案 0 :(得分:0)

你的意思是它没有显示在宏窗口中吗?您希望它显示为工作表功能/用户定义的功能吗? 如果要将其用作UDF,则需要具有返回类型并将代码放在常规模块中。代码看起来像

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

如果您尝试将此作为独立例程使用,则不能,因为您需要非可选输入(komorka as range)。它需要从包含function / sub的一些函数中调用,它可以传递komorka值。一旦有了可以调用kolory函数的内容,就可以在代码中使用它。代码看起来与上面相同。

答案 1 :(得分:0)

这是您的函数的正确语法:

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

即。删除那些*并将-替换为=

在Excel工作表中,要返回单元格A1的颜色,请在其他单元格中键入=kolory(A1)

当然,如果您只是编写VBA代码,则不需要函数kolory,因为它只是komorka.Interior.Color的包装...