excel编辑之后,怎么直接用VBA生成相应的二进制文件
就是把excel单元格的内容转成二进制
谢谢大神们!

解决方案 »

  1.   

    其实我就想把excel里面每个单元格的内容都转成二进制的。
    我的需求就是要分析这些二进制数据。
    其实也就是你说的那样,最好是十六进制的样子如:00-ff
      

  2.   

    '一个单元格一个单元格的转:
    '下面的函数可能会有用:'StrToByte:字符串->字节数组
    'ByteToStr:字节数组->字符串'可转换中英文混合字符.Private Sub StrToByte(s As String, b() As Byte)
        Dim i As Long
        Dim p As Long
        Dim b1 As Byte, b2 As Byte
        For i = 1 To Len(s)
            If Asc(Mid$(s, i, 1)) >= 0 Then
                ReDim Preserve b(p)
                b(p) = Asc(Mid$(s, i, 1))
                p = p + 1
            Else
                ReDim Preserve b(p + 1)
                Call IntToByte(Asc(Mid$(s, i, 1)), b1, b2)
                b(p) = b1
                b(p + 1) = b2
                p = p + 2
            End If
        Next i
    End SubPrivate Sub IntToByte(n As Integer, b1 As Byte, b2 As Byte)
        Dim s As String
        s = Right$("0000" & Hex$(n), 4)
        b1 = CByte("&H" & Left$(s, 2))
        b2 = CByte("&H" & Right$(s, 2))
    End SubPrivate Function ByteToStr(b() As Byte) As String
        Dim i As Long
        While i <= UBound(b)
            If b(i) < 128 Then
                ByteToStr = ByteToStr & Chr$(b(i))
                i = i + 1
            Else
                ByteToStr = ByteToStr & Chr$(ByteToInt(b(i), b(i + 1)))
                i = i + 2
            End If
        Wend
    End FunctionPrivate Function ByteToInt(b1 As Byte, b2 As Byte) As Integer
        Dim s As String
        Dim s1 As String, s2 As String
        s1 = Right$("00" & Hex$(b1), 2)
        s2 = Right$("00" & Hex$(b2), 2)
        s = "&H" & s1 & s2
        ByteToInt = CInt(s)
    End Function 
      

  3.   

    还是很谢谢你 。
    这个方法好想麻烦,在说我也没有学过VB
    有人告诉我说excel编辑之后,直接用VBA生成二进制文件?
    你说她说的直接用VBA生成二进制文件是通过编码实现的吗?
    还是有什么工具之类的?