Error con el objeto Range de Excel VBA

La presente para solicitarles de manera muy atenta el favor de explicarme el motivo del siguiente error que estoy presentando en el siguiente código, pues he revisado la sintaxis y a mi modo de ver es la correcta:

Filas_datos = Worksheets("Hoja1").Range("A5").End(xlDown).Row
Columna_a_calcular = UserForm4.TextBox1.Value

Set Rango_a_evaluar = Worksheets("Hoja1").Range(Cells(5, Columna_a_calcular), Cells(Filas_datos, Columna_a_calcular))
Valor_mínimo = Application.WorksheetFunction.Min(Rango_a_evaluar)
Valor_máximo = Application.WorksheetFunction.Max(Rango_a_evaluar)
Worksheets("Hoja1").Cells(5, 8).Value = Media_provisional(Valor_mínimo, Valor_máximo)

El problema se presenta en la expresión Set Rango_a_evaluar = Worksheets("Ergonomía").Range(Cells(5, Columna_a_calcular), Cells(Filas_datos, Columna_a_calcular)) pues arroja el error "Se ha producido el error '1004' en tiempo de ejecución: Error definido por la aplicación o el objeto." Realmente no entiendo por qué falla, agradezco mucho si pueden ayudarme a descifrar la causa.

Respuesta
1

En el rango range(cells(fila, col), cells(fila, col)) tienes que indicar la hoja para cada celda, de lo contrario te tomará datos de la hoja activa, por ejemplo, tendría que ser así:

Hoja. Range(Hoja. Cells(fila, col), Hoja. Cells(fila, col))


Prueba con el código de esta forma:

    Set h1 = Worksheets("Hoja1")
    Filas_datos = h1.Range("A5").End(xlDown).Row
    Columna_a_calcular = UserForm4.TextBox1.Value
    Set Rango_a_evaluar = h1.Range(h1.Cells(5, Columna_a_calcular), h1.Cells(Filas_datos, Columna_a_calcular))
    Valor_mínimo = Application.WorksheetFunction.Min(Rango_a_evaluar)
    Valor_máximo = Application.WorksheetFunction.Max(Rango_a_evaluar)
    h1.Cells(5, 8).Value = Media_provisional(Valor_mínimo, Valor_máximo)
    '
    Set h2 = Worksheets("Ergonomía")
    Filas_datos = h2.Range("A5").End(xlDown).Row
    Columna_a_calcular = UserForm4.TextBox1.Value
    Set Rango_a_evaluar = h2.Range(h2.Cells(5, Columna_a_calcular), h2.Cells(Filas_datos, Columna_a_calcular))
    Valor_mínimo = Application.WorksheetFunction.Min(Rango_a_evaluar)
    Valor_máximo = Application.WorksheetFunction.Max(Rango_a_evaluar)
    h2.Cells(5, 8).Value = Media_provisional(Valor_mínimo, Valor_máximo)
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas