excel - 如何在 Excel/VBA 中从十六进制代码创建文件

标签 excel vba binary hex decimal

我在 Excel 工作簿中有十六进制格式的代码。每个 2 位数的代码位于单独的单元格中,因此看起来像 4D|54|68|64|00|00|00|06 等。也可能有一些单元格包含 4 或 6 位数的代码,如果让它变得更简单。有没有办法从这里编码文件?实际上,我需要它,以便在十六进制编辑器中打开文件将显示代码。我有一种感觉,这可能涉及 HEX2DEC 或 HEX2BIN,但即便如此,我也不知道从哪里开始。

最佳答案

就将字符串转换为字节而言,可能不是最有效的解决方案,但只需以二进制模式打开文件并将字节放入其中就可以了:

Sub HexStringToBinaryFile()

    Dim hex_val As String
    hex_val = "4D|54|68|64|00|00|00|06"

    Dim output() As String
    output = Split(hex_val, "|")

    Dim handle As Long
    handle = FreeFile
    Open "C:\Dev\test.bin" For Binary As #handle

    Dim i As Long
    For i = LBound(output) To UBound(output)
        Put #handle, , CByte("&H" & output(i))
    Next i

    Close #handle

End Sub

关于excel - 如何在 Excel/VBA 中从十六进制代码创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29975175/

相关文章:

vba - 更改电子表格时使用 Outlook 从 Excel 发送自动电子邮件

excel - 在Excel中制作 "stacked"漏斗图?

excel - 使用 VBA 在 Excel 中创建每月选项卡

Excel VBA粘贴到事件单元格的偏移量

MATLAB:将 uint32(4 字节)值转换为相应的 IEEE 单精度浮点形式

algorithm - 有效生成具有固定设置位和已知按位与结果的随机二进制数

excel - 突出显示完整的重复行(不是单个值)

excel - 删除重复项的循环仅适用于第一次迭代

excel - 过滤掉特定值

ruby - ruby 中的二进制分数