【发布时间】:2017-07-06 18:38:04
【问题描述】:
我是 VBA 的新用户,正在尝试读取一个很大的文本文件。有时也是一些 MB 大小的文本文件。
数据由不同时间戳的某个数字的打印结果组成。
我需要存储值的时间戳如下:
步骤时间已完成 1.00,总时间已完成 1.00
那么打印出来的数据如下:
90000354 1 -3.9630E-02 -3.5410E-02 -0.2695 0.4523 2.424 0.5630
现在,我想查找数字 90000354,需要将这些数字 -3.9630E-02、-3.5410E-02 和 -0.2695 复制并粘贴到 Excel 工作表中。现在,我正在使用以下代码,但它给出了问题。请帮助解决此问题。
非常感谢。
Option Explicit
Private Sub CommandButton1_Click()
Dim text As String, MyData As String, strData() As String, myFile As String, textLine As String
Dim v As Variant
Dim numIde As Long, i As Long
myFile = Application.GetOpenFilename("Dat Files (*.dat), *.dat")
Open myFile For Input As #1
MyData = Space$(LOF(1))
Do Until EOF(1)
Line Input #1, textLine
MyData = MyData & textLine & vbCrLf
Loop
Close #1
strData() = Split(MyData, vbCrLf)
numIde = 90000354
For i = LBound(strData) To UBound(strData)
If InStr(1, strData(i), numIde, vbTextCompare) Then
Cells(2, 2).Value = Mid(numIde, numIde + 20, 11)
Cells(2, 3).Value = Mid(numIde, numIde + 32, 11)
Cells(2, 4).Value = Mid(numIde, numIde + 44, 11)
Exit For
End If
Next i
结束子
运行代码最终报错如下:
“运行时错误'54':文件模式错误”
在尝试调试时,它在此代码行“Get #1, , MyData”处停止
【问题讨论】:
-
很好的问题,但是您需要提供有关问题所在的信息,如果您可以更明确地说明您遇到的错误以及何时可以帮助某人回答
-
感谢您的建议@Gary Evans。运行代码后我忘了添加输出。错误是“运行时错误'54':错误文件模式”。在尝试调试时,它在此代码行“Get #1, , MyData”处停止。