Problemstellung:
Für 32Bit und 64Bit Office Versionen
Wie kann ich aus einer römische Zahl eine Zahl?
Public Function Romanum2Dec(ByVal sRomZahl As String) As Long Dim a As String, b As String, c As String Dim i As Long Dim erg As Long If Len(sRomZahl) < 1 Then Exit Function For i = 1 To Len(sRomZahl) b = Mid(sRomZahl, i, 1) Select Case a Case "I": If InStr("VXLCDM", b) Then erg = erg - 2 Case "V": If InStr("XLCDM", b) Then erg = erg - 10 Case "X": If InStr("LCDM", b) Then erg = erg - 20 Case "L": If InStr("CDM", b) Then erg = erg - 100 Case "C": If InStr("DM", b) Then erg = erg - 200 Case "D": If b = "M" Then erg = erg - 1000 End Select Select Case UCase(b) Case "I" erg = erg + 1 Case "V" erg = erg + 5 Case "X" erg = erg + 10 Case "L" erg = erg + 50 Case "C" erg = erg + 100 Case "D" erg = erg + 500 Case "M" erg = erg + 1000 Case Else Exit Function End Select a = b Next Romanum2Dec = erg End Function
Aufruf:
Dim x As Long x = Romanum2Dec("MMIV")
würde die römische Zahl "MMIV" in 2004 umwandeln
Ähnliche Artikel
Weiterlesen...