vba 如何当前excel 打开txt文件后并将txt文件保存为EXCEL 10
如果取消打开txt文件的对话框,要停留在当前EXCEL上.例如,当前在A的EXCEL文件,打开B.TXT后,将B另存为XLS格式后退出B文件.如果是在打开TXT的对话框中...
如果取消打开txt文件的对话框,要停留在当前EXCEL上. 例如, 当前在A的EXCEL文件, 打开B.TXT后, 将B另存为XLS格式后退出B文件. 如果是在打开TXT的对话框中,取消打开文件,要停留在A.xls中.
另外要将B.txt内容复制到A.XLS的第一SHEET里面. 展开
另外要将B.txt内容复制到A.XLS的第一SHEET里面. 展开
1个回答
展开全部
如果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文件的当前工作表中制作一个命令按钮链接宏即可操作。
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打开这个txt是很整齐的一个excel表格, 如果用你的方法会变成一行一串数据.
建议用Worksheets(1).UsedRange.Copy 相对简单一些.
第二, 没有将txt文件另存为想同名字的excel文件.
追答
呵呵
第一,用上面的代码执行的结果不是一串字符,应该是一个整齐的数据表格(03版本实测通过)。
请看清楚代码条件——把由逗号分隔的TXT数据导入EXCEL
第二,数据导入了,文件保存直接用另存为保存即可啊。未必你还要一个保存文件的代码?
其实,这个也很简单,新建一个EXCEL工作簿,右击导入的数据工作表标签,"移动或复制工作表"后保存即可!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询