Hi Robin,
gerne:
Das Wichtigste zuerst:
Der Rückgabewert dieser Function ist vom Datentyp: Range
Die Intersect-Methode liefert Dir also eine Schnittmenge an Zellen in Form eine Range-Objekts (Objektvariable).
Wenn die Methode keine Schnittmenge liefern kann, wird der Rückgabewert Nothing sein. (wie bei Objektvariablen üblich)
Folglich prüfst Du eine Objektvariable auf Nothing.
Üblich bei dieser Methode ist die Prüfung auf Negation.
Dim obj as Object
set obj = Intersect(...)
If Not obj Is Nothing Then
'*** die Intersect-Methode hat eine Schnittmenge geliefert
Else
''' hat keine geliefert
End If
Du kannst aber auch den kürzeren weg, ohne Objektvariable, gehen:
If Not Intersect(...) Is Nothing Then
..
Else
...
End If
Noch kürzer (aber nur, wenn 100 pro klar ist, dass ein Range-Objekt geliefert wird, ansonsten wird ein Laufzeitfehler geworfen):
'*** Am Beispiel zur Ausgabe der Address-Eigenschaft
Debug.Print Intersect(...).Address
Da Intersect ein Rangeobjekt zurückgeben kann, kannst Du durch anhängen eines Punktes dessen Eigenschaft/Methoden wie bei Objektvariablen bekannt einsetzen und verwenden. Aber Obacht, kann zu einem #LFZ führen.... Welcher das ist, bitte provozieren/rausfinden ;)
Klar soweit? Gut.
Beispiel:
Schnittmenge für B3:
Debug.Print Intersect(Columns(3), Rows(3)).Address
Schnittmenge B10:C12:
Keine Schnittmenge hingegen:
|