2016-12-19 1 views
7

Ich habe englische Version von Excel und polnischen regionalen Einstellungen. Ich versuche, einen Code zu machen, der Zellen mit dem Nummernzeichen vor dem Zahlenwert formatiert.Verwenden Sie kein GBP (£) Symbol in VBA

Leider wird es in "L" konvertiert, wenn ich das Symbol in VBA-Fenster einfügen. Der Makrorekorder zeichnet auch auf diese Weise formatierte Zellen als "L" auf. Chr (163) gibt "£" zurück.

Das Ändern der Systemspracheneinstellung, der Lokalisierungseinstellungen oder der Tastatureinstellungen hatte keine Auswirkungen. Erst nach dem Ändern der regionalen Einstellungen (erfordert PC-Neustart) nach Englisch (Großbritannien) funktioniert es korrekt. Gibt es eine Möglichkeit, dieses Symbol zu verwenden, ohne die regionalen Einstellungen zu ändern?

+0

Was sind die aktuellen regionalen Einstellungen? Hast du eine Schleife durch 'Chr (i)' laufen lassen, wobei i eine inkrementelle Ganzzahl ist, um zu sehen, ist es ein anderes 'Chr' (obwohl ich das bezweifle)? – Jeremy

+0

Können Sie es entkommen als \ £ – Phil

+2

Haben Sie 'ChrW (163)' probiert? – ThunderFrame

Antwort

5

Wenn Sie das Symbol auf die Formatierung über VBA anwenden möchten, versuchen Sie:

Sub Serling() 
    Const g = "General" 
    dq = Chr(34) 
    sterl = " " & ChrW(163) 
    s = g & dq & sterl & dq 
    Selection.NumberFormat = s 
    Selection.Font.Name = "Arial Unicode MS" 
End Sub 

enter image description here

EDIT # 1:

Für mich, das ist wirklich cool . Wenn Sie Grad Celsius wollen, verwenden Sie ChrW (8451): Wenn Sie Grad Fahrenheit wollen, verwenden Sie ChrW (8457), usw.

+0

Nur ein kleiner Punkt, "Sterl" sollte an der Vorderseite der Nummer laut OP-Anfrage sein, aber das kann leicht gemacht werden, indem Sie Ihre feine Lösung betrachten. –

+0

@SkipIntro Sie sind richtig! –

Verwandte Themen