El operador "Es" de VBA se utiliza para comparar dos referencias de objetos.
Si las referencias del objeto son las mismas, Es devolverá VERDADERO. Si las referencias del objeto son diferentes, Es devolverá FALSO.
No es nada
El uso más común del Es El operador debe comprobar si se ha asignado un objeto a una variable de objeto.
Puede ver cómo funciona esto en el siguiente procedimiento:
123456789101112 | Sub IsNothing ()Dim ws como hoja de trabajo'Establecer ws = ActiveSheetSi ws no es nada, entoncesMsgBox "No asignado"DemásMsgBox "Asignado"Terminara siEnd Sub |
Esto es útil para evitar errores causados por un objeto que no está asignado a la variable de objeto.
Intersección - No es nada
Por lo general, esto se usa con Eventos de cambio de hoja de trabajo para identificar si el rango objetivo se encuentra dentro de un rango específico.
1234567 | Private Sub Worksheet_Change (ByVal Target As Range)Si no se cruza (objetivo, rango ("a1: a10")) no es nada, entoncesMsgBox "Intersecar"Terminara siEnd Sub |
Es - Comparar objetos
El operador Is también se puede utilizar para comparar objetos.
Veamos un ejemplo. Aquí asignaremos dos hojas de trabajo a los objetos de la hoja de trabajo rng1 y rng2, probando si los dos objetos de la hoja de trabajo almacenan la misma hoja de trabajo:
12345678910111213 | Sub CompareObjects ()Dim ws1 como hoja de trabajo, ws2 como hoja de trabajoEstablecer ws1 = Hojas ("Hoja1")Establecer ws2 = Hojas ("Hoja2")Si ws1 es ws2 entoncesMsgBox "Mismo WS"DemásMsgBox "Diferentes WS"Terminara siEnd Sub |
Por supuesto, los objetos de la hoja de trabajo no son los mismos, por lo que se devuelve "WS diferente".