用于彩色单元的VBA UDF

时间:2015-02-01 20:31:01

标签: vba excel-vba excel

我确信我的问题很简单,因为我是UDF的新手。我创建了以下UDF,但在使用= CheckColor1(H13:M13)

时无法跨列应用它
Function CheckColor1(range)
    If range.Interior.Color = RGB(0, 176, 80) Then
        CheckColor1 = "Final"
    ElseIf range.Interior.Color = RGB(255, 255, 0) Then
        CheckColor1 = "Final"
    ElseIf range.Interior.Color = RGB(191, 191, 191) Then
        CheckColor1 = "Final"
    ElseIf range = 0 Then
        CheckColor1 = "Final"
    Else
        CheckColor1 = " "
    End If
End Function

1 个答案:

答案 0 :(得分:0)

您忘了定义函数的参数对象或数据类型。

根据过程参数的语法,就像声明变量一样,必须使用“As”来指定参数的类型。

必须将参数声明为普通变量,省略Dim关键字。

但是,您不能使用数据或对象类型的名称作为参数名称本身,而这正是您尝试做的。

Function CheckColor1(r as Range)
    If r.Interior.Color = RGB(0, 176, 80) Then
        CheckColor1 = "Final"
    ElseIf r.Interior.Color = RGB(255, 255, 0) Then
        CheckColor1 = "Final"
    ElseIf r.Interior.Color = RGB(191, 191, 191) Then
        CheckColor1 = "Final"
    ElseIf r.interior.colordindex = 0 Then
        CheckColor1 = "Final"
    Else
        CheckColor1 = " "
    End If
End Function

enter image description here