【问题标题】:Convert Hex Characters to ASCII Characters using EXCEL使用 EXCEL 将十六进制字符转换为 ASCII 字符
【发布时间】:2020-09-17 02:55:18
【问题描述】:

我在论坛上找到了一些如下所示的代码,它将使用 VBA 脚本将 ASCII 代码转换为十六进制字符,是否可以将十六进制字符转换为 ASCII 字符??

我的代码如下

 Sub AsciiToHex()
 Dim strg As String
 Dim tmp As String

 strg = Worksheets("Sheet1").Range("A1")
 Worksheets("Sheet1").Range("A5").value = strg

 tmp = ""
 For i = 1 To Len(strg)
 tmp = tmp & hex((Asc(Mid(strg, i, 1))))
 Next

 Worksheets("Sheet1").Range("A6").value = tmp

 End Sub

我试图将 hex((Asc(Mid(strg, i, 1)))) 交换为 Asc((hex(Mid(strg, i, 1)))) ,但没有奏效。任何帮助将不胜感激

样本数据

十六进制格式 48 65 6C 6C 6F

转换后会如下

ASCII 格式 你好啊

【问题讨论】:

  • 显示一些示例数据。

标签: excel vba


【解决方案1】:

十六进制转字符串

Function HexToString(InitialString As String) As String
    Dim i As Long
    For i = 1 To Len(InitialString) Step 2
        HexToString = HexToString & Chr("&H" & (Mid(InitialString, i, 2)))
    Next i
End Function

Function StringToHex(InitialString As String) As String
    Dim i As Long
    For i = 1 To Len(InitialString)
        StringToHex = StringToHex & Hex(Asc(Mid(InitialString, i, 1)))
    Next i
End Function

【讨论】:

  • 像魅力一样工作 - 感谢您为解决此解决方案提供的所有帮助:
【解决方案2】:

怎么样:

Public Function KonvertHex(s As String) As String
    KonvertHex = ""
    For i = 1 To Len(s)
        KonvertHex = KonvertHex & Asc(Mid(s, i, 1))
    Next i
End Function

【讨论】:

  • 需要将 Hex 转换为 Ascii ,而不是函数中的 Ascii 转换为 Hex
  • @John 我不关注,Dhex68D 的 ascii
  • 正确 - 但是我只有一个工作表中的十六进制值,我想翻译成 Ascii 所以我需要如何对你的函数进行逆向工程,当我有 Ascii 值转换为十六进制。只需要反过来
【解决方案3】:

这使用了工作表函数Hex2Dec

[a1:e1] = [{"48", "65", "6C", "6C", "6F"}]
For Each c In Range("a1:e1")
    c.Offset(1, 0) = Chr(WorksheetFunction.Hex2Dec(c))
Next c

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 2022-01-09
    • 2022-01-09
    • 2011-10-26
    • 2017-03-11
    • 2018-01-31
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多