Sie müssen den Wert als Zeichenfolge zurückgeben, zumindest wenn das Ergebnis eine Genauigkeit von mehr als 15 Stellen hat.
z.B:
Option Explicit ' Convert hex to decimal ' In: Hex in string format ' Out: Decimal in string format Public Function HexadecimalToDecimal(HexValue As String) As String ' If hex starts with 0x, remove it to represent Hex that VBA will understand Dim ModifiedHexValue As String ModifiedHexValue = "&H" & Replace(HexValue, "0x", "") HexadecimalToDecimal = CDec(ModifiedHexValue) End Function
Ich überlasse es Ihnen, die Länge zu testen und zu entscheiden, ob Sie eine Zeichenfolge oder eine Zahl zurückgeben möchten. und Sie werden feststellen, dass ich Ihre &H
Additionsroutine ein wenig geändert habe .