我正在尝试将一列十六进制值转换为二进制值,然后将二进制值写入二进制文件。但是,我在将十六进制值转换为二进制值时遇到问题...
我找到了这个帖子: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)
)时继续获取错误事件。
非常感谢您对此问题的任何帮助。谢谢!
答案 0 :(得分:2)
您收到“对象必需”运行时错误,因为未指定Option Explicit
。
使用Option Explicit
,您会遇到编译时错误,告诉您Convert
未在任何地方声明。
原因是,它是.NET框架中的静态类,在System
命名空间中:它与VBA没有任何关系。
如果要转换的值相对较小,那么您可以使用HEX2BIN
工作表函数:
Debug.Print Application.WorksheetFunction.Hex2Bin(myHexValue)
如果函数抛出错误,那么该值太大,您需要实现自己的。该站点有许多易于使用的实现。
答案 1 :(得分:0)
使用hex2bin或this post
中提到的其他一些功能