vba - 在 Visual Basic for Applications (Excel) 中将十六进制字符串转换为十进制字符串
问题描述
我正在尝试将十六进制字符串转换为十进制字符串,以输入 Excel 电子表格,但我没有找到任何解决问题的方法。我可以在 Excel 中成功显示十六进制字符串,但我想在将其推送到 Excel 电子表格之前将其转换为十进制字符串。
我尝试了以下方法(另请参阅当前注释掉的代码):
Private Function ToHexString(ByRef buffer As Variant) As String
ReDim bytes(LBound(buffer) + 6 To LBound(buffer) + 9)
Dim i As Long
For i = LBound(buffer) + 6 To LBound(buffer) + 9
bytes(i) = Hex(buffer(i))
Next
ToHexString = Strings.Join(bytes, "")
End Function
Function FromHex(hexString As String) As Long
FromHex = Val("&H" & hexString)
End Function
Private Sub StrokeReader1_CommEvent(ByVal Evt As StrokeReaderLib.Event, ByVal data As Variant)
Select Case Evt
Case EVT_DISCONNECT
Debug.Print "Disconnected"
Case EVT_CONNECT
Debug.Print "Connected"
Case EVT_DATA
buf = StrokeReader1.Read(BINARY) 'Use BINARY to receive a byte array
Debug.Print ToHexString(buf)
' Debug.Print buf
' Debug.Print "myStr length: " & Len(buf)
'using `StrConv` to allow for 2-byte unicode character storage
' dist = Convert.ToInt32("c001", 16)
' ActiveSheet.Range("A1").Value = ToHexString(buf)
' int number = Convert.ToInt32(buf, 16);
'buf = "0081C"
' Dim i As Integer = Convert.ToInt32("c001", 16)
'hexDist = ToHexString(buf)
'distInt As Integer = Convert.ToInt32(hexDist, 16)
'decLong = FromHex(buf)
Dim hexVal As String
hexVal = ToHexString(buf)
Dim intVal As Integer
intVal = Convert.ToInt32(hexVal, 16)
ActiveCell.Value = intVal
ActiveCell.Offset(1, 0).Select
End Select
End Sub
十六进制字符串通常如下所示:00A57,十进制字符串输出应如下所示:2647
我收到语法错误或错误 402,这取决于我尝试做什么。
解决方案
将代码的相应部分更改为:
Dim intVal as Long
intVal = FromHex(hexVal)
推荐阅读
- sql - SQL Server 从 3 列中选择最小日期
- binary - 评估 0xfb-0xfa
- visual-studio - 无法添加 TFS 服务器:“找不到方法:'Void Microsoft.VisualStudio.Services.Common.IssuedTokenCredential.set_TokenStorageUrl(System.Uri)'”
- c++ - Q3DSurface:半透明 QSurface3DSeries
- c# - 如何使用 Web API(cs 或 asp.net)调用 Powershell 脚本
- angularjs - ta-insert-video 嵌入视频,无重定向
- material-design - UE4 尝试创建材质或编辑预制材质时抛出错误 [SM5] metallib: Invalid bitcode file
- reactjs - 反应 div 样式未在渲染时更新
- python - 如何处理 cx_Oracle 连接内的 for 循环内的错误?
- react-native - 图标或图像 (PNG),哪个最具表现力?