如何在Excel使用宏导入txt格式文本

如图所示,将名为“XXX词库.txt”文件通过宏导入Excel的A2表格区域中。要求:当XXX词库不存在时,不弹框
没人吗?

第一步,将txt文档合并为一个大的txt文档。
打开记事本,输入for %%i in (*.txt) do type %%i>>0.txt(可将该命令复制粘贴过去)
然后将文件保存到500多个txt文件所在的文件夹,文件的后缀名为.bat文件。比如保存为all.bat

在文件夹中双击运行all.bat批处理文件,将文件夹中所有txt文档合并为一个名字叫0.txt的文档。

第二步,打开excel文档,新建一个工作表,然后打开0.txt,将内容全部复制粘贴到这个新工作表的A列。

第三步,在这个新工作表的B列、C列、D列等列设置公式
根据txt文件内容的特殊字符,自动从txt中截取所需内容。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-12
建一个文件夹,把目标txt文件和excel文件放入其中,在excel的宏编辑器中写入以下代码,有些地方可根据你的实际情况做相应改动:
Sub import_from_txt()
Dim file_name As String, my_path As String
Dim lines, cols
Dim i As Integer, j As Integer, k As Integer, q As Integer
Application.ScreenUpdating = False
Worksheets("Sheet1").Range("A1:Z65536").ClearContents
my_path = ThisWorkbook.Path
file_name = "test.txt"
'读取文件
Open my_path & "\" & file_name For Input As #1
lines = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
k = UBound(lines) + 1 '文件的行数
'遍历每一行
For i = 1 To k
cols = Split(lines(i - 1), ",") '以逗号作为分隔,将每行字符分割,分隔符可根据实际情况自己修改
q = UBound(cols) + 1 '分隔成的列数
For j = 1 To q '遍历该行的每一列
Worksheets("Sheet1").Cells(i, j) = cols(j - 1) '输出到表格中
Next
Next
MsgBox ("文件" & file_name & "读取完成,共" & k & "行")
Application.ScreenUpdating = True
End Sub本回答被提问者和网友采纳
第2个回答  2018-11-25
可以实现,不过好像我来晚了
第3个回答  2018-11-09
这种级别的问题用不到宏呀,简单用excel前端的功能就可以实现追问

记录的宏 用不了,帮弄下呗

追答

好的

追问

还没有吗?

第4个回答  2018-11-09
可以写的,文件发来追问

就图片这样

追答

急得话发来我帮你处理

追问

到底有没有VBA代码?

第5个回答  2018-11-12
建一个文件夹,把目标txt文件和excel文件放入其中,在excel的宏编辑器中写入以下代码,有些地方可根据你的实际情况做相应改动:
Sub import_from_txt()
Dim file_name As String, my_path As String
Dim lines, cols
Dim i As Integer, j As Integer, k As Integer, q As Integer
Application.ScreenUpdating = False
Worksheets("Sheet1").Range("A1:Z65536").ClearContents
my_path = ThisWorkbook.Path
file_name = "test.txt"
'读取文件
Open my_path & "\" & file_name For Input As #1
lines = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
k = UBound(lines) + 1 '文件的行数
'遍历每一行
For i = 1 To k
cols = Split(lines(i - 1), ",") '以逗号作为分隔,将每行字符分割,分隔符可根据实际情况自己修改
q = UBound(cols) + 1 '分隔成的列数
For j = 1 To q '遍历该行的每一列
Worksheets("Sheet1").Cells(i, j) = cols(j - 1) '输出到表格中
Next
Next
MsgBox ("文件" & file_name & "读取完成,共" & k & "行")
Application.ScreenUpdating = True
End Sub本回答被提问者和网友采纳
第6个回答  2018-11-25
可以实现,不过好像我来晚了
第7个回答  2018-11-09
这种级别的问题用不到宏呀,简单用excel前端的功能就可以实现追问

记录的宏 用不了,帮弄下呗

追答

好的

追问

还没有吗?

第8个回答  2018-11-09
可以写的,文件发来追问

就图片这样

追答

急得话发来我帮你处理

追问

到底有没有VBA代码?

相似回答
大家正在搜