Select Case Problem - mal wieder...
Hallo,
ich möchte einfach nur abfragen, ob eine Zelle im String einen bestimmten numerischen Wert enthält (z.B.: 0,1 oder 0,01 oder 0,25 usw.)
Ich hatte kurz darüber nachgedacht, ob man die numerischen Werte als Zahl in eine Variable stecken kann um damit weiterzuarbeiten.
Hab ich dann aber verworfe.
Nun versuche ich z.B. den String "0,1" in der jeweiligen Zelle zu finden (in einer Schleife), um dann bei einem Auftreten weitere Schritte anzustossen.
Leider klappt es nicht so wie ich will.
Ausschnitt:
Hat einer von euch da einen Tipp?
Torsten
ich möchte einfach nur abfragen, ob eine Zelle im String einen bestimmten numerischen Wert enthält (z.B.: 0,1 oder 0,01 oder 0,25 usw.)
Ich hatte kurz darüber nachgedacht, ob man die numerischen Werte als Zahl in eine Variable stecken kann um damit weiterzuarbeiten.
Hab ich dann aber verworfe.
Nun versuche ich z.B. den String "0,1" in der jeweiligen Zelle zu finden (in einer Schleife), um dann bei einem Auftreten weitere Schritte anzustossen.
Leider klappt es nicht so wie ich will.
Ausschnitt:
Select Case Cells.Find("0,1", "0,01", "0,001,", "0,0001", Cell.Row, Cell.Colum, Cell.Row, Cell.Column)
Case True
MsgBox "0,1"
Case True
MsgBox "0,01"
Case True
MsgBox "0,001"
End Select
Hat einer von euch da einen Tipp?
Torsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174429
Url: https://administrator.de/contentid/174429
Ausgedruckt am: 16.11.2024 um 23:11 Uhr
9 Kommentare
Neuester Kommentar
Zitat von @dog:
Ein Select soll unterschiedliche Fälle unterscheiden.
Sind True, True und True unterschiedliche Fälle?
Wenn denn wenigstens ein "Case Else" am Ende stünde, dann wäre es egal.Ein Select soll unterschiedliche Fälle unterscheiden.
Sind True, True und True unterschiedliche Fälle?
Hallo TorstenB!
Was genau soll das werden? Wenn Du wissen willst, ob irgendwo in der Tabelle (zumindest lässt Dein Codeansatz den Schluss zu, dass es nicht um eine bestimmte zu untersuchende Zelle geht) einer der angegebenen Werte (weshalb eigentlich als String - gefunden werden so nämlich keine Zahlenwerte?) in einer Zelle steht, könntest Du eine Schleife der Art
verwenden. Sollte es doch darum gehen, zu prüfen, ob die entsprechende Zahl in einer Zelle steht, dann:
Grüße
bastla
Was genau soll das werden? Wenn Du wissen willst, ob irgendwo in der Tabelle (zumindest lässt Dein Codeansatz den Schluss zu, dass es nicht um eine bestimmte zu untersuchende Zelle geht) einer der angegebenen Werte (weshalb eigentlich als String - gefunden werden so nämlich keine Zahlenwerte?) in einer Zelle steht, könntest Du eine Schleife der Art
For Each Suchwert In Array("0,1", "0,01", "0,001")
Set Found = Cells.Find(Suchwert, , xlValues, xlPart)
If Not Found Is Nothing Then
MsgBox Suchwert & " gefunden in " & Found.Address
Exit For
End If
Next
For Each Suchwert In Array(0.1, 0.01, 0.001)
Set Found = Cells.Find(Suchwert, , xlValues)
If Not Found Is Nothing Then
MsgBox Suchwert & " gefunden in " & Found.Address
Exit For
End If
Next
bastla
Hallo TorstenB!
Wenn Du nur jeweils eine Zelle untersuchen willst, verwende "
Da es um Teilstrings der Zelle gehen soll, wirst Du nicht an einer Schleife über alle Suchbegriffe (wie etwa in meiner Zeile 1) vorbeikommen (wobei ich aus Gründen der Übersichtlichkeit das "
Grüße
bastla
Wenn Du nur jeweils eine Zelle untersuchen willst, verwende "
InStr()
".Da es um Teilstrings der Zelle gehen soll, wirst Du nicht an einer Schleife über alle Suchbegriffe (wie etwa in meiner Zeile 1) vorbeikommen (wobei ich aus Gründen der Übersichtlichkeit das "
Array()
" bereits vorher einer Variablen zuweisen würde) ...Grüße
bastla
Hi,
mit Funktion wäre es etwas einfacher:
Damit kannst du zum Beispiel die Berechnung "on-the-fly" machen:
Gewinn = Umrechnung("A2") + Zinsen * 100
Wenn du die Funktion in ein Modul packst, kannst du sie von Überall mit dem Parameter der zu bestimmenden Zelle aufrufen (auch in der Zelle direkt mit =Umrechnung(Zelle))..
MfG Steini
mit Funktion wäre es etwas einfacher:
Public Function Umrechnung(Zelle As Range) As Integer
Select Case Zelle.Value
Case "0,1"
Umrechnung = "10"
Case "0,01"
Umrechnung = "100"
Case "0,001"
Umrechnung = "1000"
Case "0,0001"
Umrechnung = "10000"
Case "0,25"
Umrechnung = "4"
Case Else
Umrechnung = "1"
End Select
End Function
Damit kannst du zum Beispiel die Berechnung "on-the-fly" machen:
Gewinn = Umrechnung("A2") + Zinsen * 100
Wenn du die Funktion in ein Modul packst, kannst du sie von Überall mit dem Parameter der zu bestimmenden Zelle aufrufen (auch in der Zelle direkt mit =Umrechnung(Zelle))..
MfG Steini