获取下标超出范围的字节数组

我正在使用Excel VBA读取二进制文件,然后获取字节数组的字节。 但是在第13行中得到下标超出范围的exception

Sub GetBinaryData() Dim aryBytes() As Byte Dim bytInput As Byte Dim intFileNumber Dim intFilePos intFileNumber = FreeFile Open "Binary.bin" For Binary As #intFileNumber intFilePos = 1 While Not EOF(intFileNumber) Get #intFileNumber, intFilePos, bytInput aryBytes(intFilePos) = bytInput ReDim aryBytes(UBound(aryBytes) + 1) intFilePos = intFilePos + 1 Wend Close #intFileNumber End Sub 

它通过循环的第一行失败aryBytes(intFilePos)试图访问不存在的aryBytes元素1(它声明的dynamic&没有前面的ReDim

此外,EOF不会像您期望的二进制访问一样,请尝试使用LOF

这是一种逐字节的方式;

 Open "Binary.bin" For Binary Access Read As #intFileNumber '//only need to dimension once ReDim aryBytes(LOF(intFileNumber) - 1) '//easier to count from zero intFilePos = 0 While intFilePos < LOF(intFileNumber) '//limit to Length-Of-File Get #intFileNumber, intFilePos + 1, bytInput aryBytes(intFilePos) = bytInput intFilePos = intFilePos + 1 Wend Close #intFileNumber 

你也可以在一次阅读中做到这一点;

 Open "Binary.bin" For Binary Access Read As #intFileNumber ReDim aryBytes(LOF(intFileNumber) - 1) Get #intFileNumber, , aryBytes Close #intFileNumber