2016-04-19 6 views
1

Ich versuche eine If-Anweisung zu schreiben, die eine Eingabe (eine Währung) prüft und dann dem Dollarbetrag das korrekte Symbol zuweist. Mein Code ist unten, jede Währung funktioniert bis auf den Euro, der nur funktioniert, wenn der Dollarbetrag Buchstaben und nicht Zahlen ist. Fehle ich etwas Offensichtliches?Euro-Symbol wird nicht angezeigt (VBA)

If Note_Currency = "" Then 
    Note_Denomination = "$" + Note_Denomination 
ElseIf Note_Currency = "EUR" Then 
    Note_Denomination = "€" + Note_Denomination 
ElseIf Note_Currency = "JPY" Then 
    Note_Denomination = "¥" + Note_Denomination 
ElseIf Note_Currency = "GBP" Then 
    Note_Denomination = "£" + Note_Denomination 
Else 
    Note_Denomination = "$" + Note_Denomination 
End If 
+1

Wenn Sie sagen, dass es "nicht funktioniert", wenn Sie durch den Code gehen, überspringt es die Then-Anweisung dieses Teils? Oder folgt es tatsächlich, aber die 'Note_Denomination' ist falsch, wenn es fertig ist? – BruceWayne

+0

@BruceWayne Ich entschuldige mich für meine Unwissenheit, ich bin ein Anfänger und unterrichte mich selbst, aber was meinst du mit "Schritt durch den Code"? Wenn ich das gesamte Makro ausführe und die Währung als 'EUR' eingebe, gibt es den korrekten Dollar-Betrag ohne Symbol zurück. – 1937827

+1

Sie können durch den Code gehen, indem Sie "F8" verwenden, wenn Sie im VB-Editor sind. Schneller Check: Ersetzen Sie das EUR-Symbol durch ein gleiches "X" und sehen Sie, ob es mindestens ein "X" anzeigt. Wenn ja, dann ist es vielleicht das Symbol selbst. Außerdem schlage ich vor, '' '' '' zu verwenden, um die Zeichenfolgen zu verbinden, nicht '+'. – BruceWayne

Antwort

1

Okay, so ich es herausgefunden - Art. Ich habe dein Sub in Excel ausprobiert und das gleiche passiert mir. Mit dem Symbol und Chr(128) zeigt nur eine leere Zelle.

Was ich fand, war, dass, wenn Sie Ihr Angebot wissen, dass diese Zahlen haben, die Formattyp der Zelle in Text ändern (@):

Range("A1:A100").NumberFormat = "@"

Dann, wenn Sie Ihren Code ausführen, die Das Eurosymbol erscheint, wenn Sie Note_Denomination = Chr(128) & Note_Denomination verwenden.

SO, es sieht aus wie der Grund war nicht der Code, sondern die Zellenformatierung.

+1

Sie sind ein Genie! Ich danke dir sehr! Das einzige, was ich sagen würde (falls jemand anders sich das anschaut), ist, dass ich immer noch 'Chr (219)' benutzen musste und die Zellen wurden markiert, um Zahlen als Text zu speichern (aber ich habe das einfach deaktiviert). Vielen Dank!! – 1937827

+0

Sie nicht zufällig irgendwelche VBA kennen, um das Flag innerhalb des Makros zu ignorieren, oder? Ich würde dieses Blatt auf mehreren Computern laufen lassen und ich würde die Markierung nicht jedes Mal deaktivieren. Außerdem, wenn ich diesen Code hinzugefügt habe, nachdem das Makro ausgeführt wird, ist der größte Teil der Spalte ausgewählt, auch wenn ich eine andere Zelle auswähle. Es verschwindet nur beim Scrollen. Sie wissen nicht, warum dies passiert/wie Sie das beheben können? Danke nochmal – 1937827

+0

@ 1937827 - Was meinst du mit "ignoriere die Flagge"? Wie sieht der Rest Ihres Codes aus? Was die Spaltenauswahl betrifft, muss ich den Rest Ihres Codes sehen, um zu wissen, was passiert. – BruceWayne