Visual Basic para Aplicaciones - Problema con Set Rango

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 20
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Problema con Set Rango

Publicado por Francisco (8 intervenciones) el 30/09/2020 16:02:59
Solamente quiero salir de una duda, ya que no pude utilizar "Set". ¿Dónde esta el error al usar el set? o ¿solo aplica utilizarlo para algunos casos?
aun así hice que funcionara el código de otra manera.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub colorEstatus(filaRegistro, hj, i)
    Dim A As String, R As String, V As String
    Dim Rango As Range
    Dim tTextoE As String
 
    Sheets(hj).Select
    tTextoE = UF_TbjR.CBEstatus.Text
 
    'Set Rango = Range(Cells(filaRegistro, i)) <=== no entendí porque me aparecia el error 1004 Range de objeto _global
 
    A = RGB(255, 192, 0)
    R = RGB(255, 0, 0)
    V = RGB(0, 176, 80)
 
    Select Case tTextoE
 
        Case "Abierto"
            Cells(filaRegistro, i).Select '<=== aqui tenia colocado  rango.interior.color=R
            Selection.Interior.Color = R
        Case "Cerrado"
            Cells(filaRegistro, i).Select
            Selection.Interior.Color = V
        Case "Cancelado"
            Cells(filaRegistro, i).Select
            Selection.Interior.Color = A
 
    End Select
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de David
Val: 40
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Problema con Set Rango

Publicado por David (10 intervenciones) el 01/10/2020 01:32:20
Lo que pasa es que, dejando de lado el tema del set, el range no funciona con una sola Cells en su interior, esto dará un error:
Range(Cells(filaRegistro, i)), ya que debería ser así:
Range(Cells(filaRegistro, i), Cells(filaRegistro, i))
o de la manera correcta:
Cells(filaRegistro, i) sin el Range.

El set se utiliza especialmente para hacer referencia a objetos excel y guardarlo como una variable de objeto.
Por ejemplo:

Para hojas es:
dim hoja as worksheet (este worksheet es una coleccion y va sin la s al final)
set hoja= sheets("Hoja1") (Donde Hoja1 es el nombre de la hoja)
hoja.interior.color=rgb(0,150,150) (no es necesario utilizar select)

Quedando así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub colorEstatus(filaRegistro, hj, i)
 
    Dim A As String, R As String, V As String
    Dim Rango As Range
    Dim tTextoE As String
 
    Sheets(hj).Select
    tTextoE = UF_TbjR.CBEstatus.Text
 
    Set Rango = Cells(filaRegistro, i)
 
    A = RGB(255, 192, 0)
    R = RGB(255, 0, 0)
    V = RGB(0, 176, 80)
 
    Select Case tTextoE
 
        Case "Abierto"
            Rango.Interior.Color = R
 
        Case "Cerrado"
            Rango.Interior.Color = V
 
        Case "Cancelado"
            Rango.Interior.Color = A
 
    End Select
 
End Sub

Aunque aún se deben corregir otros detalles, pero debo ver el código completo para saberlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 20
Ha disminuido su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Problema con Set Rango

Publicado por Francisco (8 intervenciones) el 01/10/2020 15:47:05
Ok muchas gracias, ahora si ya me quedo claro.. lo revisare.
¿Qué detalles serian?, ¿Esta mal utilizar "select case"?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de David
Val: 40
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Problema con Set Rango

Publicado por David (10 intervenciones) el 02/10/2020 01:19:48
Como dije, "...pero debo ver el código completo para saberlo."
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar