本文是對百度來的結果做一個簡化,主要參考以下兩篇百度經驗
1、https://jingyan.baidu.com/article/ad310e80143a2d1849f49e08.html
2、https://jingyan.baidu.com/article/6181c3e0c8e6a1152ef1539a.html
所用示例數據為
(一)新建一個Excel文件,並在里面填寫上如下內容
(二)ALT+F11打開VBA(宏)編輯界面,然后點菜單欄【插入】,下拉列表中點【模塊(M)】
(三)插入了一個模塊1,在代碼框中復制如下代碼:
1 Sub 列舉文件名() 2 3 Dim m1$, m$, r% 4 5 m1 = Range("b1").Text 6 7 On Error Resume Next 8 9 Range("a4:c1000000").ClearContents 10 11 m = Dir(m1 & "\", vbReadOnly) 12 13 r = 3 14 15 Application.ScreenUpdating = False 16 17 While m <> "" 18 19 r = r + 1 20 21 Range("a" & r).Value = r - 3 22 23 Range("b" & r).Value = m 24 25 Range("c" & r).Value = FileDateTime(m1 & "\" & m) 26 27 m = Dir 28 29 Wend 30 31 Application.ScreenUpdating = True 32 33 MsgBox "完成" 34 35 End Sub
(四)回到新建的Excel,菜單欄中點【視圖】,下列表中【宏】,再點擊【查看宏(V)】打開宏對話框,選宏名“列舉文件名 ”點【執行】,結果如圖
(五)回到VBA(宏)編輯界面,在“列舉文件名”代碼下面復制下面代碼
1 Sub 批量EXCEL文件存文本() 2 3 Dim fm1 As String, myt As Worksheet 4 5 Dim m$, m1$, m2$, m3$, i%, r%, n% 6 7 m = Range("b1").Text 8 9 r = Application.WorksheetFunction.CountA(Range("B4:B10000")) 10 11 fm1 = Range("B2").Text & "\" 12 13 For i = 1 To r 14 15 m1 = Range("b" & i + 3).Text 16 17 n = InStr(1, m1, ".", 1) 18 19 m2 = Left(m1, n - 1) 20 21 Workbooks.Open m & "\" & m1 22 23 For Each myt In Sheets 24 25 myt.Select 26 27 If IsEmpty(myt.UsedRange) Then 28 29 30 31 Else 32 33 m3 = myt.Name 34 35 ActiveWorkbook.SaveAs Filename:=fm1 & m2 & m3 & ".txt", FileFormat:= _ 36 xlUnicodeText, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ 37 , CreateBackup:=False 38 39 End If 40 41 Next myt 42 43 ActiveWorkbook.Close SaveChanges:=False 44 45 Next i 46 47 End Sub
(六)回到新建的Excel,菜單欄中點【視圖】,下列表中【宏】,再點擊【查看宏(V)】打開宏對話框,選宏名“批量EXCEL文件存文本 ”點【執行】即可