Der VBA-Operator „Is“ wird verwendet, um zwei Objektreferenzen zu vergleichen.
Wenn die Objektreferenzen gleich sind, Ist wird TRUE zurückgeben. Wenn die Objektreferenzen unterschiedlich sind, Ist wird FALSE zurückgeben.
Ist nichts
Die häufigste Verwendung von Ist Operator ist zu prüfen, ob ein Objekt einer Objektvariablen zugewiesen wurde.
Wie dies funktioniert, können Sie in der folgenden Vorgehensweise sehen:
123456789101112 | Sub IsNothing()Dim ws als Arbeitsblatt'Setze ws = ActiveSheetWenn ws nichts ist, dannMsgBox "Nicht zugewiesen"AndersMsgBox "Zugewiesen"Ende WennEnd Sub |
Dies ist nützlich, um Fehler zu vermeiden, die dadurch verursacht werden, dass ein Objekt der Objektvariablen nicht zugewiesen wird.
Schnittmenge - ist nichts
Im Allgemeinen wird dies mit Arbeitsblattänderungsereignissen verwendet, um festzustellen, ob der Zielbereich in einen angegebenen Bereich fällt.
1234567 | Private Sub Worksheet_Change (ByVal Target As Range)If Not Intersect(Target, Range("a1:a10")) ist nichts, dannMsgBox "Schnittpunkt"Ende WennEnd Sub |
Ist - Objekte vergleichen
Der Is-Operator kann auch zum Vergleichen von Objekten verwendet werden.
Schauen wir uns ein Beispiel an. Hier werden wir den Arbeitsblattobjekten rng1 und rng2 zwei Arbeitsblätter zuweisen und testen, ob die beiden Arbeitsblattobjekte dasselbe Arbeitsblatt speichern:
12345678910111213 | Unter CompareObjects()Dim ws1 als Arbeitsblatt, ws2 als ArbeitsblattSet ws1 = Sheets("Sheet1")Set ws2 = Sheets("Sheet2")Wenn ws1 ws2 ist, dannMsgBox "Gleiche WS"AndersMsgBox "Verschiedene WSs"Ende WennEnd Sub |
Natürlich sind die Arbeitsblattobjekte nicht gleich, daher wird „Different WSs“ zurückgegeben.