Solución:
RGB
devuelve un Long
, entonces necesitas declarar clrBlue
como Long
en lugar de como ColorFormat
.
Dim clrBlue As Long
clrBlue = RGB(0, 0, 255)
Application.union(Range("A2"), Range("B3")).Interior.Color = clrBlue
Como han dicho otros, RGB () devuelve un Long, por lo que deberá usar eso en lugar de ColorFormat. En una nota algo relacionada, me gusta mucho la enumeración Color en C #, y comencé a imitar eso en mis módulos VBA. Puede crear su propia enumeración para almacenar los valores de los colores en su proyecto, luego hacer referencia al color con Color.Blue.
Esto también hace que sea realmente fácil modificar un color, si decides optar por un tono diferente de azul. Actualice la enumeración y se actualizarán todos los lugares en los que ha usado Color.Blue.
Ejemplo:
Public Enum Color
Black = 0 'RGB(0, 0, 0)
Blue = 14390640 'RGB(112, 149, 219)
Gray = 11842740 'RGB(180, 180, 180)
Red = 6118894 'RGB(238, 93, 93)
White = 16777215 'RGB(255, 255, 255)
End Enum
Para obtener el valor largo del valor RGB para almacenar, simplemente lancé el valor a la ventana Inmediato y copié la salida.
En la ventana inmediata, escriba:
? RGB(112, 149, 219)
La salida será 14390640. Podría haber una forma más sencilla de obtener el valor.
No he probado esto y no estoy discutiendo con ninguno de los comentaristas anteriores.
Me doy cuenta de que la muestra de código original tiene: clrBlue = RGB (0, 0, 256)
El número más alto permitido en RGB es 255. Ese podría ser el problema.