Colors 如何根据单元格内部颜色过滤Excel单元格?

Colors 如何根据单元格内部颜色过滤Excel单元格?,colors,filter,excel,vba,Colors,Filter,Excel,Vba,我想过滤大excel表中的行-我只想显示具有特定内部颜色的单元格,例如黄色。 有什么简单的方法吗?我的想法是编写一个VBA函数 类似的情况是: 当我有这个函数时,我可以为每种颜色生成特定的代码,然后使用它来过滤它。我甚至可以通过添加选择框结构来扩展它,这将把代码转换为人类可读的信息。 不幸的是,Excel没有看到我的函数,尽管宏已启用,而且在许多情况下,我无法使用用VB编写的代码。您的意思是它不会显示在“宏”窗口中吗?是否希望它显示为工作表函数/用户定义函数? 如果要将其用作UDF,则需要有一个

我想过滤大excel表中的行-我只想显示具有特定内部颜色的单元格,例如黄色。 有什么简单的方法吗?我的想法是编写一个VBA函数 类似的情况是:

当我有这个函数时,我可以为每种颜色生成特定的代码,然后使用它来过滤它。我甚至可以通过添加选择框结构来扩展它,这将把代码转换为人类可读的信息。
不幸的是,Excel没有看到我的函数,尽管宏已启用,而且在许多情况下,我无法使用用VB编写的代码。

您的意思是它不会显示在“宏”窗口中吗?是否希望它显示为工作表函数/用户定义函数? 如果要将其用作UDF,则需要有一个返回类型,并将代码放在常规模块中。代码看起来像

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

如果您试图将其作为一个独立的例程使用,您不能这样做,因为您需要一个非可选的输入komorka作为范围。需要从某个包含函数/子函数调用它,该函数/子函数可以将komorka值传递给它。一旦有了可以调用kolory函数的东西,就可以在代码中使用它。代码看起来与上面相同

这是函数的正确语法:

Public Function kolory(komorka As Range) As Long
    kolory = komorka.Interior.Color
End Function
i、 e.去掉那些*并用=

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


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

什么不适合您的函数?不幸的是Excel没有看到我的函数不清楚。对于初学者来说,也许可以删除那些*字符?它们在那里做什么?在所有可能的数据类型中,为什么要使用字符串来包含颜色信息?是的,你是对的…错误的选择。我改为整数。更好?更糟。。。试试看会发生什么。有关更多信息,请参阅.Color和RGB function.dang上的帮助文件。显示我在回答问题时没有excel在我面前。那么长时间最好吗?或者是否有专门的方法将RGB值存储为RGB而不是等效的数字?
Public Function kolory(komorka As Range) As Long
    kolory = komorka.Interior.Color
End Function