求教Line Input #的执行速度慢的问题,如何解决?

bubbles110 2007-11-23 07:25:47
VBA部分程序如下:
Sub Pick_Up1()
Dim ss As String
Open "D:\xx.txt" For Input As #1 '打开文本文件
Line Input #1, ss1 <-------执行这一句的速度特别慢
End Sub
或者:
Do While Not EOF(1)
Line Input #1, ss1
Debug.Print ss1
Loop

文件xx.txt有4M大小。
开始运行时是正常的,应该和文件大小没关系。后来即使只执行上面一段,只要到"line input #"部分就特别慢。
请问是什么问题导致这种情况,如何修改程序。我需要从txt文件中读出每行的数据。
谢谢各位大侠~~
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bubbles110 2007-11-26
  • 打赏
  • 举报
回复
嗯~这么多热心的朋友
原来是我在操作时把文件中的回车全删掉了,line input变成了一次读4M的文件进来,而不是一次读一行。所以造成了特别慢。
这个问题解决了~
谢谢大家伙了~~希望继续交流:)
  • 打赏
  • 举报
回复
不该一行一行读取 直接一次性把内容读取到变量中 然后一次性的输出
Sub Pick_Up1()
Dim ss As String
open "D:\xx.txt" For Input As #1 '打开文本文件
ss=input(lof(1),1)
debug.print ss
close 1
End Sub
zdingyun 2007-11-23
  • 打赏
  • 举报
回复

Sub Pick_Up1()
Dim ss As String '此处定义ss,后用ss1 Open "D:\xx.txt" For Input As #1 '打开文本文件
Line Input #1, ss1 ' <-------执行这一句的速度特别慢
End Sub '上句ss1未见定义

以下提供一段能正常运行的代码:

Option Explicit
Dim str As String
Dim l As Integer
Dim i As Integer
Dim j As Integer

Private Sub cmdOpen_Click()
Dim NextLine As String
Dim Txt_sj As String
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, NextLine
str = str & NextLine & Chr(13) & Chr(10)
Loop
Close

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧