大家帮忙看看下面的宏为什么得不到想要的结果.
Sub TTest()
application.ClearMsg
Set fs = CreateObject("Scripting.FileSystemObject")
if fs.FileExists("D:\Weisoft Stock\setdata\1105.txt")= false then
Set a = fs.CreateTextFile("D:\Weisoft Stock\setdata\1105.txt", True)
else
Set a = fs.OpenTextFile("D:\Weisoft Stock\setdata\1105.txt" ,1,0)
end if
'Do While a.AtEndOfStream <> True
qq =a.readline
application.MsgOut qq
s =split(qq)
for i=0 to ubound(s)
application.MsgOut s(i)
next
'Loop
a.Close
End Sub
本意是想读出行文本文件的一行,后分开.上面的执行了.分开了.按理比如分开后第一个是100,第4个是188.可我就是读不出.
1105.txt 文件如下:
100 21 21 188 -79 3
下面是运行结果:
100
21
21
188
-79
3
请朋友帮忙,怎么得到上面的值.就是比如a =100,b=21,c=21,d=188,e=3.
错误找到了
s =split(qq)
这个函数使用,应该是 s =split(qq," ")
同时1105.txt 的文件修改为 100 21 21 188 -79 3 (也就是属于数之间加一个空格,对应split函数的第二个参数,必须对应。)
还有这样转化后s数组变量的类型应该是字符窜,那么使用的时候要用转换函数(比如CINT(s(1)),这样使用才是数值型)。有问题在发贴。
多谢楼上.
这问题我不用split,解决了.看了你的回复,我再来做.一样还是解决不了split的问题.
现在还不用考虑转换的事.怎么才能把1105.txt文件(好多行)读出,第一个给a,第二个给b,.......
你如果要用循环,连续的将每一行读出,赋值给另一个变量,那最好是用数组,便于循环赋值。a,b……不好放在循环里。
我也是建议用数组,把有需要的读进缓存中,在txt尽量用“,”隔开数据,不要用空格(这样有需要的话转二进制也方便,给matlab读取也方便)
如果是要即时运算的,在缓存中的读取,比文档上的读取快得多(如果时间比较重要的话,更加不要用excel来读取和交换数据,excel的数据读取是最慢的;但行列定位容易,易于程序编写)。