2017-01-04 23 views
2

Ich möchte ein Stück Code erstellen, der Zahlen in meiner Arbeitsmappe von der englischen in die französische Zahlenformatierung konvertieren kann.Ändern Sie auf kanadische (CDN) französische Zahlenformatierung in Excel VBA

Zum Beispiel

  • Englisch Formatierung $1,000,000.99 sein würde, und
  • würde Französisch 1 000 000,99 $ sein

ich keine Standard-Französisch-Codes zu finden scheinen, können in Excel integriert und mit einem , anstelle einer . für die Dezimalzahl zeigt keine Zahlen kleiner als $ 1.

Jede Hilfe oder Beratung ist willkommen!

Antwort

1

Um das Währungssymbol auf der rechten Seite Ihrer Zahlen erscheinen zu lassen, verwenden Sie die NumberFormat Eigenschaft eines Range Objekt und stellen Sie ihn auf:

  • Für Dollar: #,##0.00 [$$-C0C]
  • Für Euro: #,##0.00 [$€-C0C]

Das Verhalten von Kommas und Punkten für Dezimalstellen und Zifferngruppierung wird normalerweise von Ihren Regions- und Spracheinstellungen in Windows gesteuert.

Sie können diese Einstellung anwendungsweit ändern (d. H. Sie wirkt sich auf alle auf Ihrem Computer geöffneten Arbeitsmappen aus), indem Sie die Werte Application.DecimalSeparator und Application.ThousandsSeparator in VBA ändern. Alternativ können Sie den gleichen Effekt erzielen, indem Datei> Optionen> Erweitert und deaktivieren Sie „Use Systemtrenner“

enter image description here

+0

Danke für die Hilfe! Ich habe eine Code-Schleife, die ich verwenden möchte, um alle Währungsformatierungen in meiner Arbeitsmappe zu finden und zu ersetzen, aber sie scheint den neuen Formatierungscode nicht korrekt zu ersetzen. für jedes Blatt in ActiveWorkbook.Sheets Application.FindFormat.NumberFormat = "$ #, ## 0.00" Application.ReplaceFormat.NumberFormat = "#, ## 0.00 [$$ - 40C]" Sheet.Cells.Replace Was: = "", Ersatz: = "", LookAt: = xlPart, SearchOrder _ : = xlByRows, MatchCase: = Falsch, SearchFormat: = True, ReplaceFormat: = True Es gibt einen anwendungs-/objektdefinierten Fehler zurück . Irgendwelche Ideen? – Greg

+0

@Greg normalerweise betrifft dieser Fehler das Verweisen auf ein Objekt, das nicht 'Set' ist. Dies liegt wahrscheinlich daran, dass Sie 'Sheet' in der' For Each'-Schleife verwenden. Versuchen Sie, ein "Dim Sht als Worksheet" direkt über dem For hinzuzufügen und "für jedes Sht in ActiveWorkbook.Sheets" stattdessen zu verwenden. Sie müssen auch jedes 'Sheet' in der Schleife zu' Sht' ändern. –

+0

Ich habe 'dim Sheet as Worksheet' in meinen Code geschrieben und der gesamte folgende Code benutzt diese Eigenschaft, wird aber nicht ausgeführt. Der Fehler tritt bei 'Application.ReplaceFormat.NumberFormat =" #, ## 0,00 [$$ - 40C] "' – Greg

0

Um den Code für jede Aktion in Excel zu erhalten:

  1. Start ein Makro
  2. Aufnahme tun, was Sie über den Code
  3. stoppen die Aufnahme
  4. Überprüfung der Makrocode replizierenden (ALT + F11)

In diesem Fall die Formatierung der Anwendung gibt diesen Code:

Selection.NumberFormat = "#,##0.00 $" 

Hoffe, das hilft.