Array mit griechischen Buchstaben. Suchen - Ersetzen Funktion

  • Allgemein

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Mangafreak1995.

    Array mit griechischen Buchstaben. Suchen - Ersetzen Funktion

    Hallo Leute,

    ich habe seit echt langer Zeit nichts mehr mit VB gemacht, daher bin ich als absoluter Anfänger abgestuft.

    Ich habe ein VB-Code unteranderem aus zwei Arrays besteht. In den einem (suchArray) Werden Buchstaben/Wörter eingegeben die in einer Spalte gesucht werden und im anderen Array (ersetzArray) sind die Buchstaben/Wörter beinhaltet welche durch die gefundenen Wörter ersetzt werden.

    Nun will ich im ersten Array nach griechischen Buchstaben suchen, um diese z.B mit Lateinischen zu ersetzten. Sobald ich aber im Modul (Weiß nicht wie ich es nennen soll, wenn ich im Excel ein Makro programmieren möchte, öffnet sich dieses Fenster wo ich den Code schreiben kann) einen griechischen Buchstabe eingebe, wird er im Text als Fragezeichen oder komische Symbole ausgegeben. Ich habe schon verschiedene Methoden probiert, durch "Copy & Past", selber eingeben, von UTF8 Dokumente...

    Jetzt nun zum Code und zu meiner Frage:

    VB.NET-Quellcode

    1. ersetzArraySub test()
    2. Dim suchArray()
    3. Dim ersetzArray()
    4. Dim k As Long
    5. suchArray = Array("α", "β", "γ")
    6. ersetzArray = Array("a", "b", "c")
    7. For k = LBound(suchArray) To UBound(suchArray)
    8. Call ActiveSheet.Columns(1).Replace(suchArray(k), _
    9. ersetzArray(k), _
    10. , _
    11. , _
    12. False)
    13. Next k
    14. End Sub


    Sobald ich diesen Code rein kopiere sieht der Code so aus:

    VB.NET-Quellcode

    1. Sub test()
    2. Dim suchArray()
    3. Dim ersetzArray()
    4. Dim k As Long
    5. suchArray = Array("?", "â", "ã")
    6. ersetzArray = Array("a", "b", "c")
    7. For k = LBound(suchArray) To UBound(suchArray)
    8. Call ActiveSheet.Columns(1).Replace(suchArray(k), _
    9. ersetzArray(k), _
    10. , _
    11. , _
    12. False)
    13. Next k
    14. End Sub


    Zu meine Fragen:

    Wie kann ich in einem Array griechische Buchstaben eingeben? (HEX?)
    Kann ich das Modul(Das VB Fenster/Editor im Excel) in UTF8 umstellen?

    Hat jemand einen nützlichen Vorschlag, ich bin über jede Hilfe dankbar.

    Gruß
    Sry, da ich mich in VBA nun überhaupt nicht auskenne , kann ich Dir Deine Fragen auch nicht vollständig beantworten. In VB.NET funktioniert Copy & Paste in das Code-Fenster problemlos.

    Allerdings kannst Du zumindest Werte in Arrays einfügen , wenn Du wie in VB die CHRW$ Funktion benutzt, siehe Adding Greek letters

    Eine Zuordnung der Buchstaben zu Unicode Werten findest Du zum Beispiel hier: Greek alphabet - Unicode Standard
    Entschuldigt die späte Antwort, ich bekomm das mit der Syntax nicht richtig hin.
    Ich weiß zwar was ich schreiben soll (Semantik) aber nicht wie...kann mir den keiner ein kleines Beispiel machen wie man einen Wert in ein Array angibt.
    Das war jetzt einer meiner letzten Versuche...brauch ich noch eine Prozedur damit ich ChrW ausführen kann?

    VB.NET-Quellcode

    1. Sub test()
    2. Dim suchArray()
    3. Dim ersetzArray()
    4. Dim k As Long
    5. suchArray = Array("ChrW(&#945)", "ChrW(&#946)", "ChrW(&#947)")
    6. ersetzArray = Array("1", "2", "4")
    7. For k = LBound(suchArray) To UBound(suchArray)
    8. Call ActiveSheet.Columns(1).Replace(suchArray(k), _
    9. ersetzArray(k), _
    10. , _
    11. , _
    12. False)
    13. Next k
    14. End Sub
    ChrW ist eine Funktion und darf nicht mit im String sein. Sie sollte dir einen String oder Char liefern und einen Integer fordern. Die Integer hast du ja schon. Warum nutzt du keine Dictionary(Of Char, Integer)

    In UTF8 umstellen ? Wenn du etwas ausgibst wo du das Encoding varieren kannst solltest du dann Encoding.UTF8 anwählen.