Error al extraer el valor de una celda en Excel, VBA

Tengo el siguiente código:

Dia = Range(Cells(1, j)).Value
    Select Case Dia
        Case "L"
            Range(j & "1").Value = "M"
        Case "M"
            Range(j & "1").Value = "X"
        Case "X"
            Range(j & "1").Value = "J"
        Case "J"
            Range(j & "1").Value = "V"
        Case "V"
            Range(j & "1").Value = "S"
        Case "S"
            Range(j & "1").Value = "D"
        Case "D"
            Range(j & "1").Value = "L"
    End Select

Pero me da el error 1004, ERROR EN EL MÉTODO RANGE DE OBJETO '_GLOBAL' al llegar a la línea:

Dia = Range(Cells(1, j)).Value

Tengo la celda bloqueada, pero desprotejo la hoja antes con esto "Sheets(Hoja).Unprotect"

1 Respuesta

Respuesta
1

[Hola

Lo que pasa es que el objeto "Range" espera un argumento y "Cells" es una propiedad (de las hojas, de los rangos, etc.).

Para el caso de una sola celda, tendrías que usar o el objeto "Range" o la propiedad "Cells" de la hoja:

Dia = Cells(1, j)).Value

Eso suponiendo que lo que varías es la columna y la fila siempre es la 1 (en ese caso es propiedad de la hoja porque el VBA asume que está usando la hoja activa)

Dia = Range("A" &  j).Value

Eso suponiendo que lo que varías es la fila y la columna siempre es la "A"

Del mismo modo en tu "Select - Case" solo te funcionarán tus líneas con "Range" si es que a la variable "j" le has dado un valor correspondiente a una letra de las columnas (A, B, C..)

Comentas

Abraham Valencia

Al ser la columna lo que muevo, me ha venido bien el 

Dia = Cells(1, j)).Value

Me faltó poner el .Value, porque ya había probado con Cells

¡Gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas