Excel批量转txt

本文是对百度来的结果做一个简化,主要参考以下两篇百度经验

1、https://jingyan.baidu.com/article/ad310e80143a2d1849f49e08.html

2、https://jingyan.baidu.com/article/6181c3e0c8e6a1152ef1539a.html

所用示例数据为

(一)新建一个Excel文件,并在里面填写上如下内容

(二)ALT+F11打开VBA(宏)编辑界面,然后点菜单栏【插入】,下拉列表中点【模块(M)】

(三)插入了一个模块1,在代码框中复制如下代码:

Sub 列举文件名()

Dim m1$, m$, r%

m1 = Range("b1").Text

On Error Resume Next

Range("a4:c1000000").ClearContents

m = Dir(m1 & "\", vbReadOnly)

r = 3

Application.ScreenUpdating = False

While m <> ""

r = r + 1

Range("a" & r).Value = r - 3

Range("b" & r).Value = m

Range("c" & r).Value = FileDateTime(m1 & "\" & m)

m = Dir

Wend

Application.ScreenUpdating = True

MsgBox "完成"

End Sub

(四)回到新建的Excel,菜单栏中点【视图】,下列表中【宏】,再点击【查看宏(V)】打开宏对话框,选宏名“列举文件名 ”点【执行】,结果如图

(五)回到VBA(宏)编辑界面,在“列举文件名”代码下面复制下面代码

Sub 批量EXCEL文件存文本()

Dim fm1 As String, myt As Worksheet

Dim m$, m1$, m2$, m3$, i%, r%, n%

m = Range("b1").Text

r = Application.WorksheetFunction.CountA(Range("B4:B10000"))

fm1 = Range("B2").Text & "\"

For i = 1 To r

m1 = Range("b" & i + 3).Text

n = InStr(1, m1, ".", 1)

m2 = Left(m1, n - 1)

Workbooks.Open m & "\" & m1

For Each myt In Sheets

myt.Select

If IsEmpty(myt.UsedRange) Then

Else

m3 = myt.Name

ActiveWorkbook.SaveAs Filename:=fm1 & m2 & m3 & ".txt", FileFormat:= _
xlUnicodeText, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False

End If

Next myt

ActiveWorkbook.Close SaveChanges:=False

Next i

End Sub

(六)回到新建的Excel,菜单栏中点【视图】,下列表中【宏】,再点击【查看宏(V)】打开宏对话框,选宏名“批量EXCEL文件存文本 ”点【执行】即可

猜你喜欢

转载自www.cnblogs.com/orchidLan/p/13378792.html