Bucle que itera con letras

Anónimas
2022-11-18T22:15:32+00:00

Necesito un bucle que utilice letras del alfabeto en vez de números, algo así como

     **For n= “A” to “Z”**

     **instrucciones...**

     **Next n**

Ojalá se pueda hacer. Muchísimas gracias por su ayuda

Brenda023

Microsoft 365 y Office | Excel | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios
{count} votos

10 respuestas

Ordenar por: Muy útil
  1. Héctor Miguel 71,585 Puntos de reputación
    2022-11-19T00:00:14+00:00

    dependiendo de dos o tres "detallitos" de los que NO has comentado nada (?)

    for n = 65 to 90

    Asc("A") = 65

    Asc("Z") = 90

    Chr(65) = "A"

    Chr(90) = "Z"

    0 comentarios No hay comentarios
  2. Anónimas
    2022-11-19T13:58:49+00:00

    Gracias Héctor, me gustó mucho tu solución, pero lamentablemente no me funcionó, seguramente porque no la usé correctamente. Aquí te pongo un extracto del macro que, como ves, se trata de aplicar referencia absoluta a una parte de una formula

    For n = 65 To 90

        ActiveCell.Range("A1:T17").Select

        Selection.Replace What:=("!") & Chr(n), Replacement:=("!") & Chr(n) & ("$")

        Selection.Copy

        ActiveCell.Offset(-33, 0).Range("A1").Select

        ActiveSheet.Paste

    Next n

    0 comentarios No hay comentarios
  3. Anónimas
    2022-11-19T14:08:48+00:00

    Perdón Hector, si funciona y es una muy buena solución

    muchísimas gracias por tu ayuda.

    Brenda

    0 comentarios No hay comentarios
  4. Anónimas
    2022-11-19T18:47:53+00:00

    . . . se trata de aplicar referencia absoluta a una parte de una formula . . .

    ► Referencia absoluta es cuando fijamos tanto la columna como la fila (tu código fija sólo la columna), pero independientemente del término empleado, ¿No te basta así?...

    For n = 65 To 90

    **Range("A1:T17").Replace What:=("!") & Chr(n), Replacement:=("!") & Chr(n) & ("$")** 
    

    Next n

    ... para modificar el rango origen de datos ?.

    • No sé cómo será tu modelo de datos, pero parece que tu código realiza unos desplazamientos de rango hacia arriba de 33 filas con cada ciclo del bucle, pega allí el rango modificada la 1ª columna, nuevo desplazamiento y pega modificada la 1ª y 2ª columna,... etc.
    • He visto otros detalles curiosos, pero me temo que intento entrar donde no me llaman.
    0 comentarios No hay comentarios
  5. Anónimas
    2022-11-19T22:42:43+00:00

    Gracias Antonio por tu interés en mi problema, pero te aseguro que la solución que me dio Hector Miguel, fue exacta y precisa. Es cierto que me era difícil de explicar porque solo tenía referencias absolutas una parte de la fórmula y la otra no. Lo que si te puedo decir que la formula total logra el resultado correcto una vez ubicada 33 líneas arriba. Pero si me ha impresionado que Héctor, sin mayor detalle, de una vez acertó con la solución correcta.

    Brenda023

    0 comentarios No hay comentarios