Abfrage Groß- und Kleinschreibung

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Manü.

    Abfrage Groß- und Kleinschreibung

    ahoi,

    Visual Basic-Quellcode

    1. For i = 0 To 1 Step 1
    2. CutFCell(i) = Mid(FCell, i + 1, 1)
    3. If Asc(CutFCell(i)) >= 97 Or CutFCell(i) <> "" Then
    4. CutFCell(i) = Chr$(Asc(CutFCell(i)) - 32)
    5. End If
    6. CutFCell2(i) = CutFCell(i)
    7. Next


    ich würde gerne mal wissen wieso diese codezeile nicht funktioniert

    Visual Basic-Quellcode

    1. If Asc(CutFCell(i)) >= 97 Or CutFCell(i) <> "" Then


    was nicht funktioniert ist das in der Abfrage scheinbar die Frage ob das Arrayelement LEER ist übergangen wird da das Prog trotzdem versucht die das Leere Feld in auf groß und kleinschreibung zu testen.

    schonmal danke für die hilfe
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Manü“ ()

    Probiers mal so:

    Visual Basic-Quellcode

    1. For i = 0 To 1 Step 1
    2. CutFCell(i) = Mid(FCell, i + 1, 1)
    3. If CutFCell (i) <> "" Then
    4. If Asc(CutFCell(i)) >= 97 Then
    5. CutFCell(i) = Chr$(Asc(CutFCell(i)) - 32)
    6. End If
    7. End If
    8. CutFCell2(i) = CutFCell(i)
    9. Next


    Wenn CutFCell(i) leer ist, erzeugt Asc("") einen Fehler. Also zunächst überprüfen, ob es leer ist und nur wenn nicht, auf Großschreibung überprüfen.

    Das geht übrigens auch so:

    Visual Basic-Quellcode

    1. If Left(CutFCell(i), 1) = UCase(Left(CutFCell(i), 1)) Then
    ahoi,

    Visual Basic-Quellcode

    1. For i = 0 To 1 Step 1
    2. CutFCell(i) = Mid(FCell, i + 1, 1)
    3. If CutFCell (i) <> "" Then
    4. If Asc(CutFCell(i)) >= 97 Then
    5. CutFCell(i) = Chr$(Asc(CutFCell(i)) - 32)
    6. End If
    7. End If
    8. CutFCell2(i) = CutFCell(i)
    9. Next


    so hab ich es auch gelöst aber mir is einfach nich klar warum er es auf die andere weise nicht macht
    da asc("") ja eigentlich 0 ergeben müsste

    und bei

    Visual Basic-Quellcode

    1. If Left(CutFCell(i), 1) = UCase(Left(CutFCell(i), 1)) Then


    bräuchte ich ja eigentlich keine abfrage mehr oder ?
    also müsste das ja reichen ?

    Visual Basic-Quellcode

    1. Left(CutFCell(i), 1) = UCase(Left(CutFCell(i), 1))
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    ahoi,

    ich habs grad n bissl durchprobiert und im endeffekt reicht ...

    Visual Basic-Quellcode

    1. For i = 0 To 1 Step 1
    2. CutFCell(i) = UCase(Mid(FCell, i + 1, 1))
    3. Next


    ... vollkommen aus um alles beides in einer zeile zu realisieren.

    danke für die hilfe
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Manü schrieb:

    da asc("") ja eigentlich 0 ergeben müsste


    Stimmt nicht ganz. Es gibt den Null-Character, das ist das Zeichen mit dem ASCII-Wert 0, dies ist jedoch nicht der Nullstring, also ein leerer String ("").

    Wenn ich folgendes mache:

    Visual Basic-Quellcode

    1. x = Chr(0)


    Dann ist die String-Länge von x 1 und nicht 0 wie bei "".

    Visual Basic-Quellcode

    1. y = Asc(x)


    liefert dann 0, da das erste Zeichen von x den ASCII-Wert 0 hat.

    Asc("") erzeugt einen Fehler, weil der String gar kein Zeichen hat, auch nicht den Null-Character.
    ahoi,

    das wundert mich da der logische wert NULL ja eigentlich Leer bedeutet

    aber ich werds einfach mal hinnehmen müssen ;)

    danke dir nochmal für die Aufklärung
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de