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
假设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
假设d盘文件夹123中,有一个456的txt文件,456.txt的第10行为:a-b-c
,现在将b读取到sheet1的a1单元格。