Operatorul VBA „Is” este utilizat pentru a compara două referințe de obiect.
Dacă referințele la obiect sunt aceleași, Este va reveni ADEVĂRAT. Dacă referințele la obiect sunt diferite, Este va reveni FALS.
Nu este nimic
Cea mai comună utilizare a Este operatorul trebuie să verifice dacă un obiect a fost atribuit unei variabile de obiect.
Puteți vedea cum funcționează acest lucru în procedura de mai jos:
123456789101112 | Sub IsNothing ()Dim ws Ca foaie de lucru'Set ws = ActiveSheetDacă ws nu este nimic atunciMsgBox „Neasignat”AltfelMsgBox „Atribuit”End IfSfârșitul Sub |
Acest lucru este util pentru a preveni erorile cauzate de faptul că un obiect nu a fost atribuit variabilei obiect.
Intersectează - Nu este nimic
În mod obișnuit, acest lucru este utilizat cu Evenimente de modificare a foii de lucru pentru a identifica dacă intervalul țintă se încadrează într-un interval specificat.
1234567 | Foaie de lucru sub privat_Change (țintă ByVal ca interval)Dacă nu se intersectează (țintă, interval („a1: a10”)) nu este nimic atunciMsgBox „Intersectează”End IfSfârșitul Sub |
Este - Comparați obiecte
Operatorul Is poate fi, de asemenea, utilizat pentru a compara obiecte.
Să vedem un exemplu. Aici vom atribui două foi de lucru obiectelor foii de lucru rng1 și rng2, testând dacă cele două obiecte ale foii de lucru stochează aceeași foaie de lucru:
12345678910111213 | Sub CompareObjects ()Dim ws1 ca foaie de lucru, ws2 ca foaie de lucruSet ws1 = Foi ("Sheet1")Set ws2 = Foi ("Sheet2")Dacă ws1 este ws2 AtunciMsgBox „Same WS”AltfelMsgBox „WS-uri diferite”End IfSfârșitul Sub |
Desigur, obiectele foii de lucru nu sunt aceleași, așa că „WS-uri diferite” este returnat.