首页 文章

在VBA中将十六进制单元格值转换为二进制[重复]

提问于
浏览
0

这个问题在这里已有答案:

我试图将一列十六进制值转换为二进制值,然后将二进制值写入二进制文件 . 但是,我在将十六进制值转换为二进制时遇到问题...

我找到了这个帖子:Convert hex value string to Binary string

我一直试图做的答案建议并将每个十六进制字符转换为二进制,然后将结果追加到表示完整二进制数的字符串 . 但是,我在尝试转换十六进制字符串字符时遇到错误...这是我目前正在尝试做的事情:

Dim hexString As String
Dim binaryString As String
hexString = ""
binaryString = ""
Dim rangeOfCells As Range
Set rangeOfCells = Range ("C5: C100")
Dim hexCell As Range

For Each hexCell In rangeOfCells.Cells
    If Not isEmpty(hexCell.value) Then
        hexString = hexCell.Value
        Dim counter As Integer
        For counter = 1 to Len(hexString)
            binaryString = binaryString & Convert.ToString(Convert.ToInt32(Mid(hexString, counter, 1), 16), 2)
        Next
    End If
Next

我继续在将 hexString 字符转换为二进制并将值附加到 binaryString 的行上出现此错误:

运行时错误'424':需要对象

我尝试简化代码行,并在尝试将我的 hexString 转换为Int(即: Convert.ToInt32(hexString) )时继续获取错误事件 .

非常感谢您对此问题的任何帮助 . 谢谢!

2 回答

  • 2

    使用hex2bin或this post中提到的一些其他功能

  • 0

    您're getting an '对象必需'运行时错误,因为未指定 Option Explicit .

    使用 Option Explicit ,您将遇到编译时错误,告诉您 Convert 未在任何地方声明 .

    原因是,它是.NET框架中的静态类,在 System 命名空间中:它与VBA没有任何关系 .

    如果要转换的值相对较小,则可以使用 HEX2BIN 工作表函数:

    Debug.Print Application.WorksheetFunction.Hex2Bin(myHexValue)
    

    如果函数抛出错误,那么该值太大,您需要实现自己的 . 该站点有许多易于使用的实现 .

相关问题