前言:
而今咱们对“vba 读入文本文件”大概比较注重,我们都想要剖析一些“vba 读入文本文件”的相关知识。那么小编在网摘上网罗了一些有关“vba 读入文本文件””的相关内容,希望你们能喜欢,大家一起来学习一下吧!Excel可以通过VBA与文本文件进行交互。
目录
1 创建文本文件
2 将工作表保存为文本文件
3 添加数据到文本文件
4 读取文本文件中的数据
1 创建文本文件
1.1 使用VBA语句创建文本文件
Sub 创建文本文件()
Dim sFName As String, iFNumber As Integer, r As Long
sFName = Application.InputBox(prompt:="请输入文本文件的名称:", _
Title:="输入文件名称", Type:=2)
If sFName = "False" Or sFName = "" Then Exit Sub
sFName = ThisWorkbook.Path & "\" & sFName & ".txt"
iFNumber = FreeFile '获取可用文件号
Open sFName For Output As #iFNumber '用Output方式打开文件
Write #iFNumber, "新建文本文件" '向文件中写入数据
Close #iFNumber '关闭文件
End Sub
1.2 使用FSO对象模型创建文本文件
Sub FSO创建文本文件()
Dim fso As New FileSystemObject
Dim oStream As TextStream
Dim sFName As String
sFName = Application.InputBox(prompt:="请输入文本文件的名称:", _
Title:="输入文件名称", Type:=2)
If sFName = "False" Or sFName = "" Then Exit Sub
sFName = ThisWorkbook.Path & "\" & sFName & ".txt"
'创建文本流对象
Set oStream = fso.CreateTextFile(Filename:=sFName, OverWrite:=True)
oStream.WriteLine "新建文本文件" '向文本流对象中写入数据
oStream.Close '关闭文本流对象
Set oStream = Nothing
Set fso = Nothing
End Sub
2 将工作表保存为文本文件
Sub 工作表保存为文本文件()
Dim sFName As String
sFName = Application.InputBox(prompt:="请输入文本文件的名称:", _
Title:="输入文件名称", Type:=2)
If sFName = "False" Or sFName = "" Then Exit Sub
sFName = ThisWorkbook.Path & "\" & sFName & ".txt"
On Error Resume Next
If Len(Dir(sFName, vbDirectory)) > 0 Then
If MsgBox("该文件已经存在,是否删除?", vbQuestion + vbYesNo) = vbYes Then
Kill sFName '删除已有的同名文件
Else
Exit Sub
End If
End If
On Error GoTo 0
Set ws1 = Worksheets("Sheet1")
ActiveWorkbook.SaveAs Filename:=sFName, FileFormat:=xlCSV
MsgBox "保存成功!"
ActiveWorkbook.Close SaveChanges:=False
End Sub
3 添加数据到文本文件
Sub 添加数据到文本文件()
Dim fso As New FileSystemObject
Dim oStream As TextStream
Dim sFName As String
sFName = Application.GetOpenFilename("文本文件(*.txt),*.txt,所有文件(*.*),*.*", _
1, "打开文本文件")
If sFName = "False" Then Exit Sub
'打开文件为文本流对象
Set oStream = fso.OpenTextFile(Filename:=sFName, IOMode:=ForAppending)
With oStream '追加数据
.WriteLine "追加测试数据第1行!"
.WriteLine "追加测试数据第2行!"
.WriteLine "追加测试数据第3行!"
End With
oStream.Close '关闭文本流对象
Set oStream = Nothing
Set fso = Nothing
End Sub
4 读取文本文件中的数据
4.1 使用VBA语句获取文件中的数据
Sub 读取文本文件数据()
Dim str1 As String, sFName As String, iFNumber As Integer, r As Long
sFName = Application.GetOpenFilename("文本文件(*.txt),*.txt,所有文件(*.*),*.*", _
1, "打开文本文件")
If sFName = "False" Then Exit Sub
iFNumber = FreeFile '获取可用文件号
Open sFName For Input As #iFNumber '用Input方式打开文件
ActiveSheet.Cells.Clear
r = 2
Do
Line Input #iFNumber, str1
ActiveSheet.Cells(r, 1) = str1
r = r + 1
Loop Until EOF(iFNumber)
Close #iFNumber '关闭文件
End Sub
4.2 使用FSO对象模型获取文件中的数据
Sub FSO读文件数据()
Dim fso As New FileSystemObject, oStream As TextStream
Dim sFName As String, str1 As String, r As Long
sFName = Application.GetOpenFilename("文本文件(*.txt),*.txt,所有文件(*.*),*.*", _
1, "打开文本文件")
If sFName = "False" Then Exit Sub
'打开文件创建文本流对象
Set osteam = fso.OpenTextFile(Filename:=sFName, IOMode:=ForReading)
ActiveSheet.Cells.Clear
r = 2
Do
str1 = oStream.ReadLine
ActiveSheet.Cells(r, 1) = str1
Loop Until oStream.AtEndOfStream
oStream.Close '关闭文件
Set oStream = Nothing
Set fso = Nothing
End Sub
-End-
标签: #vba 读入文本文件 #vb读取txt文件内容