作者:绿色风
分类:
时间:2022-08-17
浏览:128
楼主 wise |
Q:如何逐行读取文本文件数据? A:请看以下VBA代码:
- Public Sub kk()
- Dim Text, myline As Integer, myfile As String
- myfile = ThisWorkbook.Path & "\SQL.txt"
- Open myfile For Input As #1
- Do While Not EOF(1) ' 循环至文件尾。
- myline = myline + 1
- Input #1, Text ' 读入数据并将其赋予变量Text
- Range("A" & myline) = Text
- Loop
- Close #1 ' 关闭文件。
- End Sub
逐行读取文本文件数据.rar |
2楼 biaotiger1 |
Q:如何将一个字符串写入文本文件中? A:ALT+F11→插入模块,输入如下代码- Sub 将文件写入文本文件()
- Dim Arr, I
- Open "d:\1.txt" For Binary As #1
- Put #1, , "biaotiger1"
- Close #1
- End Sub
运行以上代码后,D盘根目录会新建(如果文件已经存在则覆盖)一个名为“1.txt”的文本文件,打开后会看到字符串已经写入该文件中。 |
3楼 水星钓鱼 |
定义的两个变量怎么没用?彪兄喜欢用二进制打开文件?为什么不用Append或Output |
4楼 水星钓鱼 |
这个应该不是逐行读取吧。逐行读取应该是Line Input #1,Text |
5楼 zldccmx |
呵呵,水星的指点是到位的 |
6楼 biaotiger1 |
老大哥来啦,那怎么不写出代码来呀
|
7楼 kevinchengcw |
Q: 拟将生成的0到99999999之间的全部数值写入文本文件,但总是出现数据溢出现象,有什么好办法解决吗? 原代码如下:- Sub 八位数生成()
- Dim s(99999999) As String, i As Long
- For i = 0 To 99999999
- s(i) = Right("00000000" & i, 8)
- Next
- Open "d:\八位数.txt" For Binary As #1
- Put #1, , Join(s, vbCrLf)
- Close #1
- End Sub
A: 因生成的数据量超级大,会有几百M之多,故以上述方式多数电脑会出现内存不足造成的溢出现象,可以改良如下,即每条写入,而不是全部生成后一起写入,则不会出现该现象了,改良后代码如下:- Sub 八位数生成()
- Dim i As Double '因数据量大,故用double精度的避免出错
- Dim txtFile
- Set txtFile = CreateObject("Scripting.FileSystemObject").createTextFile(ThisWorkbook.Path & "\八位数.txt", 1) '利用FSO对象在当前目录下创建文本文件
- Application.ScreenUpdating = False '为提高速度,关闭屏幕刷新
- For i = 0 To 99999999
- txtFile.writeline Format(i, "00000000") '将数值格式化后逐条输入到文本文件中
- Next
- txtFile.Close '写入完成后关闭文本文件
- Set txtFile = Nothing '清空对象
- Application.ScreenUpdating = True '开启屏幕刷新
- MsgBox "写入完成" '消息提示
- End Sub
详见附件(分无进度条和有进度条两版本) 生成八位数序列.rar 生成八位数序列_进度条版.rar |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一