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文件中!")

26-f10-05.jpg

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