Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wie bekomme ich Nothing wenn nichts gefunden wird?
#1
Hallo,

ich habe folgenden Ausdruck/Code:

Range("B:B").Find("#&01!").Address

In der Beschreibung von MS heißt es, wenn bei der Suche nichts gefunden wird
(wie in diesem Fall bei mir hier), gibt der Ausdruck Nothing zurück.

"Diese Methode gibt Nothing zurück, wenn keine Übereinstimmung gefunden wird."

Wie bekomme ich dieses "Nothing", damit ich meinen Code weiterentwickeln kann?

Also in etwa so etwas:

If Nothing then MsgBox "Es wurde nichts gefunden!"
Antworten Top
#2
Hallo,

setz dazu eine Range-Variable ein.

Code:
Public Sub aaa()
Dim raFund As Range

Set raFund = Columns(2).Find(what:="#&01!", LookIn:=xlValues, LookAt:=xlWhole)
If Not raFund Is Nothing Then
   MsgBox raFund.Address
Else
   MsgBox "Suchbegriff nicht vorhanden."
End If

Set raFund = Nothing
End Sub

Schau dir auch mal die Microsoft Hilfe zu Find an.
Da sollte man tunlichst die Parameter LookIn und LookAt angeben. Die werden nämlich bei einer Suche gespeichert. Wird dann der Parameter nicht explicit mit angegeben, dann werden die vorher gespeicherten Einstellungen verwendet, was zu unvorhergesehenen Ergebnissen führen kann.

Steht dein Suchbegriff alleine in einer Zelle dann LookAt:=xlWhole
Steht er als Teil eines Strings z.B. in einer Zelle dann LookAt:=xlPart

Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • Schülerin
Antworten Top
#3
Hallo S...,

weise das Ergebnis der Funktion einer Variablen vom Typ Range zu und überprüfe sie mit Is Nothing.

dim strAdr as String
dim rngSuche as Range
set rngSuche = Range("B:B").Find("#&01!")
If rngSuche Is Nothing Then
   MsgBox "Es wurde nichts gefunden!"
Else
   strAdr= rngSuche.Address
   ...
EndIf
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • Schülerin
Antworten Top
#4
Danke Leute,

genau das hatte ich gesucht!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste