导航:首页 > 版本升级 > excelvba打开文本文件

excelvba打开文本文件

发布时间:2022-01-19 17:45:56

⑴ vba 如何当前excel 打开txt文件后并将txt文件保存为EXCEL

如果txt文件中的数据是由逗号分隔,试试下面的代码
Sub TXT导入到EXCEL() '把由逗号分隔的TXT数据导入EXCEL
Application.ScreenUpdating = False '关闭屏幕刷新
Const ForReading = 1 '打开一个只读文件
Set fso = CreateObject("Scripting.FileSystemObject") '创建文本对象
Set fd = Application.FileDialog(msoFileDialogOpen) '创建“打开”对话框对象
If fd.Show = -1 Then '如果选择了文件
FileName = fd.SelectedItems(1) '记录文件路径(指定文本文件名)
Else '如果没有选择文件
MsgBox "没有选择文件,请重新操作!", , "导入到EXCEL"
Exit Sub '退出程序
End If

Set sFile = fso.OpenTextFile(FileName, ForReading) '创建并打开名为sFile的TextStream对象
i = 1 '设置输入单元格的起始行号
Do While Not sFile.AtEndOfStream '如果不是文本文件的尾端,则读取数据
LineText = sFile.ReadLine '从文本文件中依次读取一行数据为字符串
d = InStr(LineText, ",") '计算这行数据从左向右第一个全角逗号的位置
If d > 0 Then '如果全角逗号存在
TH = Replace(LineText, ",", ",") '把字符串中的全角逗号替换成半角逗号
FJ = Split(TH, ",") '把由半角逗号分隔的字符串TH写入数组FJ
ElseIf d = 0 Then '如果全角逗号不存在
FJ = Split(LineText, ",")
End If
For iCol = LBound(FJ) To UBound(FJ) '从数组中读取数据并写入对应的单元格
ThisWorkbook.ActiveSheet.Cells(i, iCol + 1) = FJ(iCol)
Next iCol
i = i + 1 '滚动到下一个写入数据的单元格行
Loop
sFile.Close
Set fso = Nothing
Set fd = Nothing
Set sFile = Nothing
Application.ScreenUpdating = False '关闭屏幕刷新
End Sub

注意:
按Alt+F11打开宏编辑器,插入模块,粘贴上述代码后,在要导入TXT文件的当前工作表中制作一个命令按钮链接宏即可操作。

⑵ Excel vba 这个打开文本文件的#号是个固定用法,还是随便定义的

这个叫做文件号。
用来标识文件的,因为可能会同时打开多个文件,所以就需要区别,系统就是根据这个文件号来区别不同文件的。
文件号的范围为1-511 ,只要没有被使用,你就可以随意在这个范围内用一个。
因为通常只同时打开一个文件,所以基本上都是用#1了,你用#100 #500 也是一样可以的。
反正就是不能在关闭一个文件之前再用这个文件号,关闭文件后文件号会释放,则可以再次使用。
---------------------------------------------------------------------------------

也可以用freefile 函数来获得一个可以使用的文件号

FreeFile 函数

请参阅 示例 特性

返回一个 Integer,代表下一个可供
Open 语句使用的文件号。

语法

FreeFile[(rangenumber)]

可选的参数 rangenumber 是一个 Variant,它指定一个范围,以便返回该范围之内的下一个可用文件号。指定
0(缺省值)则返回一个介于 1 – 255 之间的文件号。指定 1 则返回一个介于 256 – 511 之间的文件号。

说明

使用 FreeFile 提供一个尚未使用的文件号。
-------------------------------------------------------------------------------

FreeFile 函数示例

本示例使用 FreeFile
函数来返回下一个可用的文件号。在循环中,共打开五个输出文件,并在每个文件中写入一些数据。
Dim MyIndex, FileNumber
For MyIndex = 1 To 5 ' 循环五次。
FileNumber = FreeFile ' 取得未使用的文件号。
Open "TEST" & MyIndex For Output As #FileNumber ' 创建文件名。
Write #FileNumber, "This is a sample." ' 输出文本至文件中。
Close #FileNumber ' 关闭文件。
Next MyIndex

⑶ excel vba读取文本文件

Subs()
OpenThisWorkbook.Path&"a.txt"ForInputAs#1
k=9
DoWhileNotEOF(1)
LineInput#1,a
a=Application.Trim(Replace(a,"--",""))
Cells(k,2).Resize(1,3)=Split(a)
k=k+1
Loop
Close#1
EndSub

⑷ 如何用EXCEL的VBA代码关闭已经打开的文本文件

给你举个例子:

Subtest11()
OpenThisWorkbook.Path&"output.txt"ForOutputAs#1'在#1打开当前文件夹中的output.txt文件
str1="123"
str2="你好吗"
str3="hello"
Print#1,str1,str2,str3,Date'写入内容
Write#1,str1,str2,str3,Date'写入内容
Close#1'关闭#1这个文件
EndSub

程序会在output.txt文件内生成两列内容如下:
123 你好吗 hello 2013-11-22
"123","你好吗","hello",#2013-11-22#
说明:ThisWorkbook.Path表示相对路径,是指当前vba对应宏文件所在的文件夹,当前的output.txt与vba对应的宏文件是同文件夹。

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

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

⑹ Excel里VBA链接打开文本文件怎么写,用记事本打开

End Sub notepad 是记事本的系统程序名,其他程序需要完整路径和完整程序文件名了。要打开的文本文件可以在notepad后加空格后再加上完整路径和完整文本文件名。这样就ok了!希望帮到您哦!

⑺ 用vba语言,打开多个txt文件,打开的形式为excel格式

以下是使用宏录制的方法获得的代码:

Sub宏2()
'我是使用excel打开的一个D: est1.txt
ChDir"D: est"
Workbooks.OpenTextFilename:="D: est1.txt",Origin:=936,StartRow:=1,_
DataType:=xlDelimited,TextQualifier:=xlDoubleQuote,ConsecutiveDelimiter_
:=False,Tab:=False,Semicolon:=False,Comma:=False,Space:=False,_
Other:=True,OtherChar:="、",FieldInfo:=Array(1,1),TrailingMinusNumbers_
:=True
Windows("工作簿1").Activate
EndSub

更为简洁的是直接这样:

Workbooks.OpenText Filename:="D: est1.txt"

⑻ excel vba打开excel文件

不知道这样符不符合你的要求(一个打开,一个恢复显示回):

Sub 后台打开答()
Application.ScreenUpdating = False
Workbooks.Open Filename:="D:\excel.xls"
ActiveWindow.Visible = False
Application.ScreenUpdating = True
End Sub

Sub 取消隐藏()
Windows("excel.xls").Visible = True
End Sub

⑼ excel中vba中用FileDialog以记事本打开文本文件

Sub打开文件()
WithApplication.FileDialog(msoFileDialogOpen)
.AllowMultiSelect=True
.Filters.Add"文本文件","*.txt",1
.InitialFileName="g:123"
.InitialView=msoFileDialogViewDetails
.Title="打开"
If.Show=0ThenExitSub
Filename=.SelectedItems(1)
EndWith
Shell"notepad"&Filename,vbNormalFocus
EndSub

⑽ 如何用excel的VBA来打开C盘文本文件

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Range("C1").Value > 0 Then
Shell "notepad C:\mybook.txt"
End If
End Sub

阅读全文

与excelvba打开文本文件相关的资料

热点内容
网络连接没了 浏览:991
代码打印pdf 浏览:563
扣扣红包网络连接失败 浏览:301
win10商城下载文件在哪 浏览:975
系统制作镜像文件 浏览:249
苹果手机指纹贴有危险 浏览:329
哪里有高中生学编程的 浏览:984
二零一八版cad的文件布局 浏览:181
js右键选中treeview 浏览:904
linux系统交换分区的文件格式是 浏览:218
数控机床编程里u5代表什么意思 浏览:202
da14580可以跑linux 浏览:819
电脑文件后缀名编程有哪些 浏览:832
怎么画网络狗头 浏览:452
javagetfoldername 浏览:994
设置小爱同学下载什么app 浏览:50
中行网银网络错误 浏览:773
华为手机开机密码 浏览:99
手机怎么连接学校网络 浏览:431
数控复合循环轮廓切割怎么编程 浏览:728

友情链接