VBA “Is” -operatören används för att jämföra två objektreferenser.
Om objektreferenserna är desamma, Är kommer att returnera TRUE. Om objektreferenserna är olika, Är kommer att returnera FALSKT.
Är ingenting
Den vanligaste användningen av Är operatören ska kontrollera om ett objekt har tilldelats en objektvariabel.
Du kan se hur detta fungerar i proceduren nedan:
123456789101112 | Sub är inget ()Dim ws Som arbetsblad'Ställ in ws = ActiveSheetOm ws är ingenting dåMsgBox "Ej tilldelad"AnnanMsgBox "Tilldelad"Avsluta omAvsluta Sub |
Detta är användbart för att förhindra fel som orsakas av att ett objekt inte tilldelas objektvariabeln.
Korsar - är ingenting
Vanligtvis används detta med ändringshändelser för kalkylblad för att identifiera om målintervallet ligger inom ett specifikt intervall.
1234567 | Private Sub Worksheet_Change (ByVal Target As Range)If Not Intersect (Target, Range ("a1: a10")) är ingenting dåMsgBox "Intersect"Avsluta omAvsluta Sub |
Är - Jämför objekt
Operatorn Is kan också användas för att jämföra objekt.
Låt oss titta på ett exempel. Här kommer vi att tilldela två kalkylblad till kalkylbladobjekt rng1 och rng2, testa om de två kalkylbladsobjekten lagrar samma kalkylblad:
12345678910111213 | Sub CompareObjects ()Dim ws1 som kalkylblad, ws2 som arbetsbladAnge ws1 = Sheets ("Sheet1")Ange ws2 = Sheets ("Sheet2")Om ws1 är ws2 DåMsgBox "Samma WS"AnnanMsgBox "Olika WS"Avsluta omAvsluta Sub |
Naturligtvis är kalkylbladsobjekten inte desamma, så "Olika WS" returneras.