excel中需要把每一行数据都导出为一个txt文本的时候,一行一行复制出来很简单,但是遇到特别多数据的时候,怎么可能一个一个复制出来呢?这个时候就需要借助excel的VBA。
一、首先用快捷键Alt+F11,打开VBA。
二、然后在左上的那个窗口里面找到导出的表格,左键双击输入指令。
三、输入的指令为:
Sub txt() Dim i, j, arr(), brr(), myRow, myCol arr = Sheet1.UsedRange myRow = UBound(arr, 1) myCol = UBound(arr, 2) For i = 1 To myRow Open ThisWorkbook.Path & "\" & arr(i, 1) & "1.txt" For Output As #1 Print #1, Join(Application.Index(arr, 1), ",") Print #1, Join(Application.Index(arr, i), ",") Close #1 Next End Sub |
这个指令具体是什么意思是需要系统学习VBA的,非专业人员只需要复制就ok了。
指令注释:
Sub 导出每行为txt()
Dim i, j, arr(), brr(), myRow, myCol
arr = Sheet1.UsedRange '将工作表的内容放入arr数组中
myRow = UBound(arr, 1) '计算出数组的行数
myCol = UBound(arr, 2) '计算出数组的列数
For i = 1 To myRow '从第2行开始循环
Open ThisWorkbook.Path & "" & arr(i, 1) & "1.txt" For Output As #1 '打开一个以第一列数据命名的txt
Print #1, Join(Application.Index(arr, 1), ",") '输出表头
Print #1, Join(Application.Index(arr, i), ",") '输出内容
Close #1 '关闭
Next '循环
End Sub
四、最后点击运行就可以了,输出的txt会保存在excel的目录里面,完成。
相关标签: Excel数据导出 VBA导出txt文本
评论列表 (条)