I need to convert strings to hexadecimals in my Excel VBA macro.
I tried:
Dim val As String
val = \"10\"
Dim hexVal As Integer
hexVal = Convert.ToInt
In VBA you need to mess about with the &H
literal:
value = val("&H" & "10") '// 16
value = val("&H3366CC") '// 3368652
Edit
Function FromHex(hexString As String) As Long
FromHex = Val("&H" & hexString)
End Function
Then
resultString = hex$(FromHex("3366CC") / FromHex("A"))
Or for constants obviously;
resultString = hex$(FromHex("3366CC") / &HA)
Consider:
Sub dural()
Dim val As String, hval As String
val = "10"
hval = Application.WorksheetFunction.Dec2Hex(val)
MsgBox hval
End Sub
VBA code needs to know or make an assumption about the input string. The code above assumes that the string represents a decimal value.
If the input string is Hex, then:
Sub dural2()
Dim val As String, hval As Long
val = "10"
hval = Application.WorksheetFunction.Hex2Dec(val)
MsgBox hval
End Sub
Here hval can be used arithmetically.