Excel批量轉txt


本文是對百度來的結果做一個簡化,主要參考以下兩篇百度經驗

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文件存文本 ”點【執行】即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM