¿Concatenar texto en llamada a funciones en VBA?

En un userForm tengo una serie de sentencias que se ejecutar al hacer click en un botón...

A su vez en distintas hojas tengo varias funciones...

El asunto es que dichas funciones tienen el mismo nombre, variando sólo en un carácter numérico, del tipo funcion1, funcion2, funcion3... Y las quiero llamar desde la función en el userForm dependiendo de una variable que va a modificar el caracter final... A esto creo que se le llama concatenar...¿es posible desde VBA concatenar texto en llamada a funciones? Del tipo:

sub funcion_userform()

dim a as string

select case variable

case "hoja1"

a=1

case "hoja2"

a"2

end select

activesheet.funcion & a

end sub

He hecho esto pero no me funciona, ¿intuyo qué el error está a la hora de concatenar el texto en la llamada a funciones? ¿Es posible?

1 respuesta

Respuesta
3

Si ya tienes un Case, entonces lo puedes utilizar así:

Sub funcion_userform()
  Dim a As String
  Select Case variable
    Case "hoja1"
      ActiveSheet.funcion1
    Case "hoja2"
      ActiveSheet.funcion2
  End Select
End Sub

Puedes poner aquí el código de una de tus funciones, solamente para saber a qué te refieres con "funcion" en una hoja.

¿Las funciones están dentro de los eventos de la hoja?

O las funciones están en un módulo.

Ayudaría si pones tus códigos, para proporcionarte un solución completa.


[Si con lo que te comenté te ayuda a resolver tu duda, no olvides valorar la respuesta.

Puedes hacerlo de esta manera:

Sub funcion_userform()
  Dim a As String
  Select Case variable
    Case "hoja1": a = 1
    Case "hoja2": a = 2
  End Select
  Run ActiveSheet.CodeName & ".funcion" & a
End Sub

[No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas