VBA:根据颜色获取细胞值

时间:2016-09-22 09:08:48

标签: excel vba excel-vba

所以我有以下VBA代码:

Function CountCcolor(range_data As Range, criteria As Range) As Long

Dim datax As Range
Dim xcolor As Long

xcolor = criteria.Interior.ColorIndex

For Each datax In range_data
    If datax.Interior.ColorIndex = xcolor Then
        CountCcolor = datax.Select
    End If
Next datax

End Function

此代码循环显示给定的范围并搜索特定的背景颜色。然后,它会获取该颜色的值,并将其放入选定的单元格中。

我的问题是,只有具有正确背景颜色的数据是数字而不是文本时才能使用。

关于为什么它无法从单元格中获取文本的任何想法?

它只显示#VALUE!如果是它的文本。

1 个答案:

答案 0 :(得分:0)

CountCcolor is defined as Long

代码应该是,

Function CountCcolor(range_data As Range, criteria As Range) As String

Dim datax As Range
Dim xcolor As Long

xcolor = criteria.Interior.ColorIndex

For Each datax In range_data
    If datax.Interior.ColorIndex = xcolor Then
    CountCcolor = datax.Select
End If
Next datax
End Function

感谢@Shai Rado注意到