Nombre de tipo de VBA

Este artículo demostrará el uso de la función TypeName de VBA.

El VBA Escribe un nombre La función se utiliza para determinar el tipo de datos almacenados en una celda, o el tipo de un objeto seleccionado, por ejemplo, una hoja de trabajo, rango o celda, o un control en un formulario.

Determinar el tipo de datos en una celda

Para determinar el tipo de datos en una celda, podemos usar la función TypeName con la propiedad Cells.

123 Sub TestCellDataType ()MsgBox "El tipo de datos en" & Cells (3, 2) .Address & "is" & TypeName (Cells (3, 2) .Value)End Sub

Si ejecutamos este código arriba con la hoja de trabajo a continuación, el cuadro de mensaje nos dirá qué tipo de datos hay en la celda.

Determinar el tipo de objeto seleccionado

También podemos usar TypeName para determinar qué tipo de objeto se ha seleccionado en una hoja de trabajo: un rango o un gráfico, por ejemplo.

123 Sub TestSelection ()MsgBox "Ha seleccionado un" & TypeName (Selección)End Sub

O, si seleccionamos un gráfico:

Podemos profundizar aún más y seleccionar los objetos dentro del gráfico, y la macro devolverá lo que hemos seleccionado.

Todo esto puede ser más útil en la construcción de nuestro proyecto VBA para controlar el flujo del código o para evitar que ocurran errores mediante pruebas para garantizar que se seleccione el tipo correcto de objeto o que se ingrese el tipo correcto de datos en una celda. .

Uso de TypeName en controles de formulario

VBA nos permite crear formularios interactivos que el usuario puede completar y devolver datos al código para usarlos de varias maneras. Podemos utilizar el operador TypeName para determinar el tipo de controles que se utilizan en un formulario.

En el siguiente ejemplo, he creado un formulario de usuario con una variedad de controles: un par de cuadros de texto, un cuadro combinado, 2 botones de opción, 2 casillas de verificación y 3 botones de comando.

Usando el código a continuación, puedo determinar qué tipo de controles hay en el formulario recorriendo todos los controles del formulario. He usado la función TypeName para devolver un mensaje con el tipo de control con una instrucción IF de VBA para verificar qué tipo de control está seleccionado.

123456 Sub WhatControlType ()Dim ctl como objetoPara cada ctl en mí.MsgBox "El control es un" & TypeName (ctl)Siguiente ctlEnd Sub

Este tipo de código puede resultar muy útil si deseamos habilitar o deshabilitar controles. En el siguiente código, cuando el formulario se abre por primera vez, los botones de opción y las casillas de verificación están deshabilitados.

123456789101112 Sub UserForm_Initialize privado ()Dim ctl como objetoPara cada ctl en mí.Si TypeName (ctl) = "CheckBox", entoncesctl.Enabled = FalseElseIf TypeName (ctl) = "OptionButton" Entoncesctl.Enabled = FalseDemásctl.Enabled = TrueTerminara siSiguiente ctlEnd Sub

Para habilitar los botones de opción y las casillas de verificación, he escrito más código detrás del botón Habilitar controles.

12345678910 Sub privado cmdEnable_Click ()Dim ctl como objetoPara cada ctl en mí.Si TypeName (ctl) = "CheckBox", entoncesctl.Enabled = No ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Entoncesctl.Enabled = No ctl.EnabledTerminara siSiguiente ctlEnd Sub

La funcionalidad en este código también se puede crear usando el operador VBA TypeOf.

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

wave wave wave wave wave