2010中,
Option Explicit
Sub Demo()
Dim f As Integer, b() As Byte
Dim lLen As Long, i As Long
f = FreeFile
Open ThisWorkbook.Path & "\数据" For Binary As #f
lLen = LOF(f)
ReDim b(1 To lLen)
' 1. 一次性读入
Get #f, , b()
' ' 2. 逐个读入
' For i = 1 To LOF(f)
' Get #f, i, b(i)
' Next i
Close #f
Dim lU As Long
Dim arrN() As String, arrS() As String
Dim lRow As Long, lCol As Long
lU = Int(lLen / 16)
If lU * 16 < lLen Then lU = lU + 1
ReDim arrN(1 To lU, 1 To 16)
ReDim arrS(1 To lU, 1 To 16)
For i = 1 To lLen
lRow = (i - 1) \ 16 + 1
lCol = (i - 1) Mod 16 + 1
arrN(lRow, lCol) = Hex(b(i))
arrS(lRow, lCol) = Chr(b(i))
Next
Range("A2").Resize(UBound(arrN, 1), UBound(arrN, 2)) = arrN
Range("Q2").Resize(UBound(arrS, 1), UBound(arrS, 2)) = arrS
End Sub
|