¿Cómo puedo transponer un rango variable en VBA de Excel?

La cuestión es la siguiente tengo un rango de datos en una hoja de Excel:

Campo 1 baja media alta

Campo 2 positivo negativo

Campo 3 baja normal alta

Campo 4 positivo negativo

Bueno, lo de arriba es un ejemplo de lo que más o menos tengo. Lo que requiero es que en otra hoja de excel, yo pueda transponer el contenido de forma que quede así:

Campo 1

Baja

Media

Alta

Campo 2

Positivo

Negativo

Y así con todas las columnas. Ya tengo gran parte del código que me coloca los nombres de "campo 1" y "campo 2". Mi único problema es que tengo la siguiente expresión para la transposición:

Set rango = Worksheets("Hoja1").Range("B4:F4")
Worksheets("Hoja2").Activate
Range(Cells(separador - 3, 2), Cells(separador - 1, 2)) = Application.WorksheetFunction.Transpose(rango)

Si lo hago sólo con el "Range ("B4:F4")" corre de maravilla. El problema es que sólo me sirve para el campo que defino en Range. Lo que necesito es que 'rango' cambie de manera dinámica de acuerdo a las iteraciones de un For Next. Pensé en definir el rango como cells de la siguiente forma:

Set rango = Worksheets("declaracion_conjuntos").Range(Cells(2,4),Cells(6,4))

Pero de esta forma Excel me marca error!

¿No se supone que esta es una forma alternativa de definir un rango?

¿Por qué me marca error?

¿Alguien puede ayudarme?

1 Respuesta

Respuesta
1

¿Y cuál es el error q marca?

Porque acabo de probar esa linea tal cual, solo le puse el indice de la hoja 1 en lugar del nombre y funciona bien.

Quizá el error sea q no pones el nombre correcto de la hoja

Añade tu respuesta

Haz clic para o