在VBA中将hex单元格值转换为二进制

我试图将一列hex值转换为二进制值,然后将二进制值写入二进制文件。 但是,我有问题的hex值转换为二进制…

我发现这个线程: 将hex值string转换为二进制string

我一直试图做的答案build议,并将每个hex字符转换为二进制,然后将结果追加到代表完整的二进制数字的string。 但是,我试图转换我的hexstring时出现错误…这是我目前正在尝试做的:

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) )时继续获取错误事件。

在这个问题上的任何帮助,不胜感激。 谢谢!

请使用hex2bin或本文中提到的一些其他function

由于没有指定Option Explicit因此会出现“Object Required”运行时错误。

使用Option Explicit你会有一个编译时错误,告诉你Convert没有在任何地方声明。

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

如果要转换的值比较小,那么可以使用HEX2BIN工作表函数:

 Debug.Print Application.WorksheetFunction.Hex2Bin(myHexValue) 

如果函数抛出一个错误,那么这个值太大,你需要实现你自己的。 这个网站有很多易于使用的实现。