VBA: devuelve un valor de un subprocedimiento

Este tutorial le enseñará cómo devolver un valor de un subprocedimiento en VBA.

Un subprocedimiento no está diseñado para devolver un valor, para eso se usa un procedimiento de función. Sin embargo, puede haber un momento en el que esté ejecutando algún código en un subprocedimiento en el que necesite obtener un valor de ese subprocedimiento. La forma de hacer esto es usar Módulo o Variables Globales o usar un Subprocedimiento para llenar una hoja de Excel.

Usar variables para devolver un valor

Puede declarar variables a nivel de módulo. Al hacerlo, esas variables se pueden usar en cualquier lugar dentro del módulo y las variables conservan sus valores. Para declarar una variable a nivel de módulo, simplemente declare la variable en la parte superior de su módulo de código:

123456789 Opción explícitaDim dblQty como doblePrueba secundariaA ()'llamar al sub TestBLlamar TestB'muestra el valor de la variable en la ventana del móduloDebug.Print dblQtyEnd Sub
1234 SubpruebaB ()'rellenar la variable del módulodblQty = 900End Sub

Para ponerlos juntos, ejecutaríamos TestA, que a su vez llamaría a TestB y nos daría el valor de 900 en la ventana inmediata.

Esto solo funcionaría dentro del módulo, ya que la variable se ha declarado utilizando la instrucción Dim en el nivel del módulo.

Variable global

Puede declarar la variable a nivel global para usarla en todos los módulos de su proyecto.

Uso de un subprocedimiento para completar una hoja de Excel

El subprocedimiento a continuación llenará directamente el rango A1 a C1 en su hoja de Excel, devolviendo así valores a las celdas del subprocedimiento.

12345 Sub PopulateRange ()Rango ("A1") = "Producto"Rango ("B1") = "Cantidad"Rango ("C1") = "Costo"End Sub

Luego puede hacer referencia a esos valores en otro procedimiento haciendo referencia a los valores de celda:

1234567 Sub RetrieveRange ()Atenuar el producto como una cadena, cuantificar tanto tiempo como duplicar el costoProducto = Rango ("A1")Quant = Rango ("B1")Costo = Rango ("C1")End Sub

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave