excel中如何实现用VBA的ope函数打开某个txt文件

excel中如何实现用VBA的ope函数打开某个txt文件。但是该文件名不能完全确定,如只知道它是开头部分为vms的txt。像vms*.txt这样的。
另外,用open函数打开某个确定的txt文档,知道怎么弄,就是不知道如何实现打开这种文件名模糊匹配的。

只有20分,全拿出来了,别嫌少。

open打开文件需要有个完全的路径名称,
建议先使用GetOpenFilename获取需要打开的文件全名称.
再使用open进行文件流操作.
dim count as long
Dim Filt As String
Dim FilterIndex As Integer
Dim Title As String
Dim File As Variant

Dim fText As String

'创建文件筛选列表
Filt = "Text Files (*.txt),*.txt,"

'默认显示*.*
FilterIndex = 1

'设置对话框标题
Title = "打开文本文件"

'获取文件路径以及文件名
File = Application.GetOpenFilename _
(FileFilter:=Filt, _
FilterIndex:=FilterIndex, _
Title:=Title)

'如果取消对话框则退出
If File = False Then
MsgBox "您未选择文件"
Exit Sub
End If

'excel获取文本数据
Open File For Input As #1
count = 0
Do While Not EOF(1)
count = count + 1
Line Input #1, fText
Worksheets("Sheet1").Cells(count, 1).Value = fText
Loop
Close #1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-18
假设d盘文件夹123中,有一个456的txt文件,456.txt的第10行为:a-b-c ,现在将b读取到sheet1的a1单元格。下面是代码
sub ff()
dim a,k%,i%
Open "d:\123\456.txt" For Input As #1 '读取456txt文件,为1号文件
a = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf) '将txt文件内容赋值给数组a,a的元素为txt的一行
Close #1 '关闭txt文件
k=ubound(a) 'txt的行数,注意a的上限为0,下限为k,txt共有k+1行
worksheets("sheet1").[a1]=split(a(9),"-")(1) ‘a(9)表示第10行,此语句将第10行以“-”分割成数组,"b"为数组的第二个元素。
end sub本回答被网友采纳
第2个回答  2019-07-15
假设d盘文件夹123中,有一个456的txt文件,456.txt的第10行为:a-b-c
,现在将b读取到sheet1的a1单元格。