Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range Object auf Nothing prüfen

Forumthread: Range Object auf Nothing prüfen

Range Object auf Nothing prüfen
24.10.2005 07:29:17
Christian
Hallo,
ich habe folgendes Problem.
Dim tmp as Range
On Error Resume Next
set tmp = Worksheets(1).Cells.find (What:="irgendwas")
Nun will ich überprüfen ob tmp ein Range-Objekt enthält oder nicht (Nothing). Wie kann ich das anstellen?
Gruß
Chris
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range Object auf Nothing prüfen
24.10.2005 07:37:07
Heiko
Moin Christian,
z.B. so:

Sub SUCHEN()
Dim tmp As Range
Set tmp = Worksheets(1).Cells.Find(What:="irgendwas")
If Not tmp Is Nothing Then
MsgBox "Gefunden " & tmp.Address
Else
MsgBox "Nix gefunden"
End If
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Range Object auf Nothing prüfen
24.10.2005 07:43:27
Christian
Super, Danke - funktioniert
Da hätt ich auch selber drauf kommen können
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Range Object auf Nothing prüfen in Excel VBA


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein Range-Objekt in Excel VBA Nothing ist, kannst Du die folgende Methode verwenden:

  1. Deklariere eine Variable vom Typ Range.
  2. Verwende die Set-Anweisung, um das Range-Objekt zu initialisieren (z.B. mit der Find-Methode).
  3. Überprüfe mit einer If-Anweisung, ob das Range-Objekt Nothing ist.

Hier ist ein Beispiel für den Code:

Sub SUCHEN()
    Dim tmp As Range
    On Error Resume Next
    Set tmp = Worksheets(1).Cells.Find(What:="irgendwas")
    On Error GoTo 0

    If Not tmp Is Nothing Then
        MsgBox "Gefunden " & tmp.Address
    Else
        MsgBox "Nix gefunden"
    End If
End Sub

In diesem Code wird tmp gesetzt, und anschließend wird geprüft, ob tmp ein gültiges Range-Objekt ist oder nicht.


Häufige Fehler und Lösungen

  1. Fehler: "Typen nicht kompatibel"

    • Lösung: Stelle sicher, dass die Variable tmp als Range deklariert ist und dass die Find-Methode erfolgreich ist.
  2. Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Überprüfe, ob Du die Set-Anweisung korrekt verwendet hast und dass die Find-Methode nicht Nothing zurückgibt.
  3. Fehler: On Error Resume Next führt zu unerwartetem Verhalten

    • Lösung: Verwende On Error GoTo 0, um den Fehlerbehandlungsmodus zu deaktivieren, sobald Du den Fehler abgefragt hast.

Alternative Methoden

Eine alternative Methode, um zu prüfen, ob ein Range-Objekt Nothing ist, wäre die Verwendung der IsNothing-Funktion, die jedoch nicht nativ in VBA existiert. Du könntest jedoch eine eigene Funktion erstellen:

Function IsNothing(rng As Range) As Boolean
    IsNothing = rng Is Nothing
End Function

Dann kannst Du diese Funktion wie folgt verwenden:

If IsNothing(tmp) Then
    MsgBox "Nix gefunden"
Else
    MsgBox "Gefunden " & tmp.Address
End If

Praktische Beispiele

Hier sind einige Beispiele, wie Du auf Nothing prüfen kannst:

  1. Überprüfung nach einer Suche:

    Dim result As Range
    Set result = Worksheets(1).Cells.Find("Suchbegriff")
    If result Is Nothing Then
       MsgBox "Der Suchbegriff wurde nicht gefunden."
    End If
  2. Überprüfung eines benutzerdefinierten Bereichs:

    Dim customRange As Range
    Set customRange = Worksheets(1).Range("A1:A10")
    If customRange Is Nothing Then
       MsgBox "Der Bereich ist leer."
    End If

Tipps für Profis

  • Verwende If Not ... Is Nothing Then, um sicherzustellen, dass Dein Range-Objekt gültig ist, bevor Du darauf zugreifst.
  • Nutze On Error Resume Next mit Bedacht; es kann die Fehlersuche erschweren, wenn Du nicht genau weißt, wo der Fehler auftritt.
  • Denke daran, dass ein leeres Range-Objekt nicht dasselbe ist wie Nothing. Überprüfe immer, ob das Objekt tatsächlich existiert.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob ein Bereich leer ist?
Du kannst die Count-Eigenschaft verwenden:

If customRange.Cells.Count = 0 Then
    MsgBox "Der Bereich ist leer."
End If

2. Was passiert, wenn ich Set tmp = Nothing verwende?
Das setzt die Variable tmp auf Nothing, was bedeutet, dass sie auf kein Objekt verweist. Dies ist nützlich, um sicherzustellen, dass eine Variable nicht mehr verwendet wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige