O operador “Is” do VBA é usado para comparar duas referências de objeto.
Se as referências do objeto forem iguais, É retornará TRUE. Se as referências do objeto forem diferentes, É retornará FALSE.
É nada
O uso mais comum do É operador deve verificar se um objeto foi atribuído a uma variável de objeto.
Você pode ver como isso funciona no procedimento abaixo:
123456789101112 | Sub IsNothing ()Dim ws como planilha'Definir ws = ActiveSheetSe ws não é nada, entãoMsgBox "Não Atribuído"OutroMsgBox "Atribuída"Fim seEnd Sub |
Isso é útil para evitar erros causados por um objeto não ser atribuído à variável do objeto.
Intersect - Is Nothing
Normalmente, isso é usado com eventos de mudança de planilha para identificar se o intervalo de destino está dentro de um intervalo especificado.
1234567 | Sub-planilha privada_Change (ByVal Target As Range)If Not Intersect (Target, Range ("a1: a10")) Is Nothing ThenMsgBox "Intersect"Fim seEnd Sub |
Is - Comparar Objetos
O operador Is também pode ser usado para comparar objetos.
Vejamos um exemplo. Aqui, atribuiremos duas planilhas aos objetos de planilha rng1 e rng2, testando se os dois objetos de planilha armazenam a mesma planilha:
12345678910111213 | Sub CompareObjects ()Dim ws1 como planilha, ws2 como planilhaDefinir ws1 = Folhas ("Folha1")Definir ws2 = Folhas ("Folha2")Se ws1 for ws2, entãoMsgBox "Mesmo WS"OutroMsgBox "Diferentes WSs"Fim seEnd Sub |
É claro que os objetos da planilha não são os mesmos, então “Different WSs” é retornado.