Excel 2013 - Ermitteln des Zellenwährungsformats


1

Ich habe eine Excel-Datei mit einem Auszug von Verkaufsprognosen erhalten. Es gibt keine Spalte, in der die Währungseinheit explizit definiert ist. Die Währungseinheit wird nur durch Zahlenformatierung (GBP, EUR oder CHF) angezeigt. Weiß jemand, wie ich das Währungsformat erkennen kann, um den entsprechenden Wechselkurs für die verschiedenen Währungen anzuwenden?

Beispiel:

Angezeigtes Zahlenformat / Tatsächliche Zahl in Zelle

200.000 GBP / 200.000

10.000 CHF / 10000

500.000 EUR / 500.000

Vielen Dank, Tym

Antworten:


1

Probieren Sie die folgende benutzerdefinierte Funktion aus:

Public Function txet(r As Range) As String
    Dim s As String
    s = Replace(r.NumberFormat, Chr(34), "")
    txet = ""
    If Len(s) < 3 Then Exit Function
    s = Right(s, 3)
    txet = s
End Function

Bildbeschreibung hier eingeben

Benutzerdefinierte Funktionen (UDFs) sind sehr einfach zu installieren und zu verwenden:

  1. ALT-F11 öffnet das VBE-Fenster
  2. ALT-I ALT-M öffnet ein neues Modul
  3. Fügen Sie das Material ein und schließen Sie das VBE-Fenster

Wenn Sie die Arbeitsmappe speichern, wird die UDF mit dieser gespeichert. Wenn Sie eine Excel-Version später als 2003 verwenden, müssen Sie die Datei als .xlsm und nicht als .xlsx speichern

So entfernen Sie die UDF:

  1. Rufen Sie das VBE-Fenster wie oben beschrieben auf
  2. Löschen Sie den Code
  3. Schließen Sie das VBE-Fenster

So verwenden Sie die UDF aus Excel:

=txet(A1)

Weitere Informationen zu Makros im Allgemeinen finden Sie unter:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

und

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Einzelheiten zu UDFs finden Sie unter:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Makros müssen aktiviert sein, damit dies funktioniert!


HI Gary's Student, vielen Dank, dass Sie die oben genannte UDF erstellt und erklärt haben. Wenn Sie die Zeit haben, möchte ich wirklich verstehen, was in jeder Zeile vor sich geht, kein Problem, wenn Sie dies nicht tun. Dies war wirklich einfach zu implementieren und erzeugte die Ausgabe, die ich suchte. Ich habe letzte Nacht gemerkt, dass ich nicht angegeben habe, welchen Output ich erreichen wollte, entschuldige mich dafür. Danke, Tym
Tym Burman

0

Sie können dies in VBA tun.

Sub CheckFormat()
Dim myCell, j, LastRow
   Worksheets("Sheet1").Activate
   LastRow = Cells(Rows.Count, "A").End(xlUp).Row
   For j = 1 To LastRow
     Set myCell = Cells(j, "A")
     Debug.Print myCell.NumberFormat
   Next j
End Sub

Ich habe Ihre Proben in A1, A2 und A3 gelegt. Der obige Code gibt Folgendes aus:

[$ GBP] #, ## 0.00

[$ CHF] #, ## 0.00

[$ EUR] #, ## 0.00

Sie können dann die ersten Teile davon analysieren, um zu entscheiden, welcher Umrechnungskurs angewendet werden soll.


Hallo Doug, ich habe eine Datei CheckFormat_Test.xlsm mit den währungsformatierten Zahlen in Spalte A auf Blatt 1 erstellt (beginnend bei A1). Ich habe ein Modul in die Datei eingefügt und den Code CheckFormat () eingefügt. Das Ausführen des Makros schien die Zahlen nicht in das oben aufgeführte Format zu ändern. Möglicherweise ist dies von Bedeutung, da das Eingabeformat tatsächlich 2 Dezimalstellen hat (Beispiel 350.000,00 GBP). Vielen Dank für Ihre Unterstützung, aber ich bin zu neu, um zu diagnostizieren, warum dies nicht funktioniert, Tym
Tym Burman

Mein Beispielcode sendet nur Ausgaben an das Direktfenster. Es sollte nur zeigen, wie das Format einer Zelle erkannt werden kann, aber Sie müssen dann entscheiden, was mit diesem Wissen geschehen soll. Mit der Antwort von Garys Student können Sie das Ergebnis besser in die Zellen neben den formatierten Werten einfügen.
Doug Deden
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.