Вам нужно будет вернуть значение в виде строки, по крайней мере, если результат имеет точность более 15 цифр.
например:
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
Я оставлю это вам, чтобы проверить длину и решить, хотите ли вы вернуть строку или число; и вы заметите, что я &H
немного изменил вашу процедуру добавления.