簡體   English   中英

VBA代碼返回#值錯誤

[英]VBA code returning #value error

我正在嘗試從excel中的條件格式顯示顏色。 在excel中,我僅使用= CheckColour(B5)例如,當我按下return時它就可以工作。 但是,當我要求工作表進行計算時,該函數給出的是#VALUE! 而且我不知道哪里出了問題。 感謝您的幫助,因為我是VBA的初學者。 謝謝

    Function CheckColour(range)
        If range.DisplayFormat.Interior.Color = RGB(255, 0, 0) Then
        CheckColour = "Red"
        ElseIf range.DisplayFormat.Interior.Color = RGB(0, 130, 59) Then
        CheckColour = "Green"
        Else
        CheckColour = "Amber"
        End If
    End Function

是的,因為:

請注意,DisplayFormat屬性在用戶定義的函數中不起作用 例如,在返回單元格內部顏色的工作表函數中,使用類似於以下內容的行:Range(n).DisplayFormat.Interior.ColorIndex。 當工作表函數執行時,它返回一個#VALUE! 錯誤。 參考

而是使用:

range.Interior.Color 

這個(簡化的示例)似乎對我有用:

Public Function CheckColour(src As Range)
    Application.Volatile
    CheckColour = src.Parent.Evaluate("GetColor(" & src.Address(False, False) & ")")
End Function

Public Function GetColor(src As Range)
    GetColor = src.DisplayFormat.Interior.Color
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM