如何用vba实现自动提取txt文件中字符到excel中?

如题所述

从你这个问题看,你VBA的水平不适合这么干。建议你用“数据”---导入外部数据---txt格式的方式导入到excel里。根本用不着vba
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-11
既然知道指定字符,何不直接输进去?追问

因为txt是文件内容是变量,

就是我要提取部分是变量,txt文件是系统自动产生,要提取部分是变量

追答

提取的位置是固定的吗?就是第3、4、8行吗?

追问

是的

也就是第3 4 8每行要提取部分之前的字符是不变的,红色圈部分是变化的,就是要提取部分

追答

追问

好像不行呢

追答

把on error resume next 注释掉,看有啥显示?你的文本是用逗号分隔的吗?

把123.txt的那几行文本发来看看,图看不清。

追问

Open "D:\6\123.txt" For Input As #1
Do
On Error Resume Next
Line Input #1, str1
i = i + 1
If i = 3 Or i = 4 Or i = 8 Then
Range("b65535").End(xlUp).Offset(1, 0).Value = Split(str1, ",")(3)
ElseIf i > 8 Then
Exit Do
End If
Loop Until EOF(1)
Close #1
End Sub

追答

我想要看的是123.txt的内容,不是代码。

追问

I:\Other\Modify\2016\MAR\(KLX017)\F020-A-NEW\F020-A-ES-1.xls
1,B7,JPG,J16,C:\Kasa\32bit\udo\post\jietu.jpg
1,E6,TXT,I:\Other\Modify\2016\MAR\(KLX017)\F020-A-NEW\F020-A-ES.prt
1,E4,TXT,F020-A-ES
1,N3,TXT,2016-04-11
1,L6,TXT,
1,B18,TXT,1
1,D18,TXT,BE401
1,F18,TXT,D8
1,G18,TXT,38.00
1,L18,TXT,0:04

追答

试试这样,不可能不行啊

追问

我的123.txt路径怎么设置

比方我的123.txt在d盘 xyz文件夹下

追答

open "d:\xyz\123.txt" for input as #1
望采纳,呵呵!

追问

我是不是哪里输错了

追答

有什么问题啊?输出是在b列的

把on error resume next删掉,看有什么提示?我这里运行没问题啊

追问

删掉没有任何提示

追答

b列有内容吗

追问

要点哪里才执行吗,还是要先打开123. txt

没有

是不放的位置不对

能否把你的excel文件发给我

大师测试能提取成功吗

追答

天哪,按f5运行。试试

就在你代码界面

能,一开始就能

按f5运行

追问

不是excel开启时自动执行吗,我按f5了,也没产生啊,我是不是太笨了,大师见笑了

追答

b列没内容?

追问

追答

拉到最后一行看看

追问

什么都没有,我估计是哪里输错了

大师能否把你测试的文档发给在下

我的电脑是繁体系统

追答

好,弄个邮箱来

已发

追问

好的,非常感谢!!!!

高手,可以用,非常感谢,但是我想指定到其他列怎么改呀?

追答

也真是太奇怪了,看你输的也没错啊,把那个B65535改成C65535就是在C列输出,以此类推。
望采纳,呵呵。

追问

非常感谢!!!!感激不尽!

本回答被提问者采纳
相似回答