在Excel VBA中将string转换为hex

我需要在我的Excel VBAmacros中将string转换为hex。

我试过了:

Dim val As String val = "10" Dim hexVal As Integer hexVal = Convert.ToInt32(val, 16) 

Convert.ToInt32(val, 16)不起作用,我猜是因为它不是VB.NET?

无论如何,我可以使用CInt(val)将string转换为整数,但如果我有hex值的string表示,例如“3366CC”,我如何将其转换为hex,以便我可以执行hex计算呢?

在VBA中,你需要关心&H文字:

 value = val("&H" & "10") '// 16 value = val("&H3366CC") '// 3368652 

编辑

 Function FromHex(hexString As String) As Long FromHex = Val("&H" & hexString) End Function 

然后

 resultString = hex$(FromHex("3366CC") / FromHex("A")) 

或者对于常量显然;

 resultString = hex$(FromHex("3366CC") / &HA) 

考虑:

 Sub dural() Dim val As String, hval As String val = "10" hval = Application.WorksheetFunction.Dec2Hex(val) MsgBox hval End Sub 

VBA代码需要知道或假设inputstring。 上面的代码假设string表示一个十进制值。

如果inputstring是hex,则:

 Sub dural2() Dim val As String, hval As Long val = "10" hval = Application.WorksheetFunction.Hex2Dec(val) MsgBox hval End Sub 

这里hval可以算术地使用。