Como puedo llamar a una hoja de Excel con una variable?

Te anexo el código que intente para harcerlo y no me funciono

Sub Macro1()
X = 1
    Worksheets(X).Select
End Sub

necesito que el nombre del libro sea un numero, no un texto.

3 respuestas

Respuesta
1

H o l a:

Si tu hoja tiene como nombre un número.

Por ejemplo, la hoja se llama 7

Y quieres seleccionar la hoja 7.

Pero si pones esto:

Sub Macro1()
    X = 7
    Worksheets(X).Select
End Sub

Te envía el errror: Subíndice fuera del intervalo

Lo anterior se debe a que quieres seleccionar la hoja de índice 7.

El índice de las hojas se enumera del 1 en adelante, en mi ejemplo tengo 2 hojas, entonces el índice son 1 y 2.

El nombre de las hojas son "1" y "7".

Parece algo confuso, pero es que las hojas tienen, por así decirlo, 3 nombres:

  • El índice
  • El codename
  • El nombre de la hoja


Ahora que ya sabemos cómo se llaman las hojas; en mi ejemplo yo puedo selecciona la hoja "7" de tres formas:

Con el índice:

Sub macro2()
'Selecciona la segunda hoja
    Sheets(2).Select
End Sub

Con codename:

Sub macro3()
'Selecciona la hoja con code name
    Hoja2.Select
End Sub

Y con el nombre de la hoja:

Sub macro4()
'Selecciona la hoja con el nombre
    Sheets("7").Select
End Sub

En el último caso, selecciono la hoja "7" entre comillas, porque su nombre, que aparentemente es un número, en el nombre de la hoja es un texto, por lo tanto hay que seleccionar la hoja utilizando el texto.

En tu macro podría quedar de las siguientes formas:

Sub Macro1()
    x = "7"
    Worksheets(x).Select
End Sub

o

Sub Macro1()
    x = "" & 7
    Worksheets(x).Select
End Sub

El caso es que el número lo tienes que pasar a texto y de esa forma ya puedes seleccionar la hoja.


Muy clara y buena tu respuesta Dante, lo que necesitaba.

Me puedes ayudar un poco más, ahora necesito hacer fórmulas nombrando a las hojas con nombre de variable. Como esta:

ActiveCell.FormulaR1C1 = "=+'N2'!R[14]C[3]"

Aquí mi hoja se llama N2

Gracias Dante.

Te anexo un ejemplo:

Sub macro()
    wvar = "N2"
    ActiveCell.FormulaR1C1 = "='" & wvar & "'!R[14]C[3]"
End Sub

Si te das cuenta, tu fórmula era esto:

ActiveCell.FormulaR1C1 = "=+'N2'!R[14]C[3]"

Lo que hice es reemplazar N2 por una variable, pero la variable va fuera del texto, le llamo texto a toda la fórmula, porque va entre comillas:

"='N2'!R[14]C[3]"

tienes que dejar "texto" & variable & "texto"

Entonces quedaría

"='" & wvar & "'!R[14]C[3]"


Sal u dos

Respuesta
-1

¿Lo qué quieres es cambiar el nombre de la hoJa?

En caso de querer cambiar el nombre de la hoja, primero determina el orden de la hoja desde su creación, aquí supongo que es la primera, por eso la numero como 1:

x=5

Sheets(1).Name = x

Respuesta
-1

Apegan dome a la pregunta original, prueba esto a ver si es lo que quieres:

Primero crea un libro nuevo de excel

En la Hoja1, cambia de nombre a MENU

En la Hoja2, cambia de nombre a Enero 2015, y asi sucesivamente hasta llegar a Diciembre 2015.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas