Variante de VBA

Tipo de datos de variante de Excel VBA

El tipo de datos variante en VBA es un tipo de datos universal que puede contener cualquier tipo de tipo de datos, pero al asignar el tipo de datos, necesitamos usar la palabra "Variante".

Todos sabemos lo importantes que son las variables en los proyectos de VBA. Una vez declarada la variable, debemos asignar un tipo de datos a las variables declaradas. La asignación del tipo de datos en VBA depende de qué tipo de datos necesitamos asignar a las variables declaradas.

Para ver un ejemplo, mire el siguiente código.

En el código anterior, he declarado la variable como "IntegerNumber" y he asignado el tipo de datos como "Integer" .

Antes de asignar el tipo de datos a la variable, debo conocer las limitaciones de la variable. Dado que he asignado el tipo de datos como Integer, mi variable puede contener los números de -32768 a 32767.

Cualquier valor superior al límite del límite del tipo de datos provocará un error. Entonces, si queremos almacenar más de 32767 valores, debemos asignar los diferentes tipos de datos que pueden contener más de 32767.

Para superar esta limitación, tenemos un tipo de datos universal "Variante". Este artículo le mostrará la guía completa de un tipo de datos Variant.

¿Cómo declarar el tipo de datos de variante?

Podemos declarar el tipo de datos variante como tipo de datos habitual, pero al asignar el tipo de datos necesitamos usar la palabra "Variante".

Código:

 Sub Variant_Example1 () Dim MyNumber As Variant End Sub 

Esto hace que la variable funcione con cualquier tipo de datos ahora. Podemos asignar cualquier número, cadena, fecha y muchas otras cosas.

A continuación se muestra la demostración del mismo.

Código:

 Sub Variant_Example1 () Dim MonthName como variante Dim MyDate como variante Dim MyNumber como variante Dim MyName como variante MonthName = "January" MyDate = "24-04-2019" MyNumber = 4563 MyName = "My Name is Excel VBA" End Sub 

En lo anterior, le he asignado una fecha a la variable, un número a la variable, una cadena a la variable. Entonces, el tipo de datos Variant nos permite no preocuparnos por qué tipo de datos vamos a almacenar o asignarle.

Tan pronto como declaramos una variable como Variante, no tenemos que preocuparnos por nuestro tipo de datos en algún lugar en el medio del proyecto mientras codificamos. Esto hace que la variable funcione de manera flexible según nuestras necesidades. Probablemente con una sola variable podamos realizar nuestras operaciones en todo el proyecto.

La variante de VBA no requiere una forma explícita

El procedimiento general para declarar una variable VBA es nombrar primero la variable y luego asignarle el tipo de datos. A continuación se muestra un ejemplo del mismo.

Esta es la forma explícita de declarar la variable. Sin embargo, cuando declaramos el tipo de datos Variant, no necesitamos declararlos explícitamente, sino que simplemente podemos nombrar la variable y omitir la parte del tipo de datos.

Código:

 Sub Variant_Example1 () Dim MyNumber End Sub 

En el código anterior, he nombrado la variable como “MyNumber” pero después de nombrar la variable no le he asignado ningún tipo de tipo de datos.

He omitido la parte [Nombre del tipo de datos] porque en el momento en que ignoramos la parte de asignación del tipo de datos, la variable invariablemente se convierte en Variante.

Cosas para recordar

Aunque el tipo de datos "Variante" es flexible con los datos que vamos a almacenar, este no es el tipo de datos popular. Parece extraño pero absolutamente VERDADERO. A menos que exista una razón específica para usar personas, evita usar este tipo de datos. A continuación se presentan algunas de las razones para evitar el uso de Variant.

  • Ignora todos los errores de discrepancia de datos.
  • El tipo de datos de la variante nos limita el acceso a la lista de IntelliSense.
  • VBA siempre adivina el mejor tipo de datos posible y lo asigna en consecuencia.
  • En el caso del límite de tipo de datos Integer, el tipo de datos Variant no nos notifica el momento en que cruza los límites 32767.