Excel表格 快速分割为TXT
数字职场
有时候,我们需要将Excel中的数据保存为TXT,操作非常繁琐,我给大家提供一个简单的方法。设计一个分割按钮,快速将Excel中的数据导入TXT中(本文以每200条数据保存为一个TXT文件为例)。
在当前的工作表中使用“控件工具箱” 绘制一个命令按钮,在其Click()事件中编写下面的代码:
Dim i As Integer: Dim arr(0 To 8)
Dim x, num, col As Integer
x = 0
num = InputBox("请输入需要把多少条记录分割到一个TXT文件中?", "")
If Int(num) <= [a65536].End(xlUp).Row Then
x = Int([a65536].End(xlUp).Row / num)
For y = 0 To x
'生成TXT文件并复制表格的标题行
Open ThisWorkbook.Path & "\abc" & y & ".txt" For Output As #1
Print #1, "序号|考试号|总分1|总分2|语文|数学|英语|物理|化学|"
Close #1
Open ThisWorkbook.Path & "\abc" & y & ".txt" For Append As #1
'有标题加2,无标题行加1
For i = y * num + 2 To (y + 1) * num + 1
For k = 0 To Range("dz1 ").End(xlToLeft).Column - 1
'把单元格的值保存到数组中
arr(k) = Cells(i, k + 1)
Next k
'写入TXT文件,单元的值之间用空格隔开
mystr = Join(arr, " ")
Print #1, mystr
Next i
Close #1
Next y
Else: MsgBox ("输入的数字超范围!!!")
End If
MsgBox ("TXT文件分割完成,一共成功分割到 " & x + 1 & " 个TXT文件中!")

需要说明的是:代码中定义的数组“arr”是用来缓存单元格中数据的,实际使用时应根据一条记录的长度(即字段个数)来定义数组的大小,在本例中一条记录共有9列,所以将数组定义为“arr(0 To 8)”。执行这段代码,根据要求输入分割的记录数,确定后就可以看到如图所示的结果了,打开每个TXT文件,里面都有200条记录。