我正在尝试在excel中编写一个UDF,它迭代给定范围,查找该范围内给定背景颜色的单元格,然后返回包含该背景颜色的单元格范围。我对VBA非常陌生,我不确定我是否正在谷歌搜索我正在寻找的东西。这是我到目前为止给出的代码。
Function findRed(MyRange As Range) As Variant
Dim redRange As Range
Application.Volatile
For Each cell In MyRange
If cell.Interior.ColorIndex = 3 Then
End If
Next cell
End Function
我在网上发现了一个简单的函数,可以返回包含背景颜色的单元格数,但是我不知道在IF语句中要做什么。找到红色的细胞然后做什么?为了返回实际上是红色的单元格范围。
答案 0 :(得分:1)
测试:
Function findRed(MyRange As Range) As Range
Dim redRange As Range, cell As Range
Application.Volatile
For Each cell In MyRange
If cell.Interior.ColorIndex = 3 Then
If redRange Is Nothing Then
Set redRange = cell
Else
Set redRange = Application.Union(redRange, cell)
End If
End If
Next cell
Set findRed = redRange
End Function
编辑:如果你想检查返回的范围地址......
Function findRedAddress(MyRange As Range) As String
Application.Volatile
On Error Resume Next
findRedAddress = findRed(MyRange).Address(False, False)
End Function
答案 1 :(得分:-2)
取决于您对找到的范围需要做什么?例如:
MsgBox cell.Address 将返回单元格的地址
MsgBox cell.value 会返回单元格的内容