0
我正在試圖創建一個按鈕。 xlsm
將會將myFolder
目錄中的〜100 .xlsx
文件中的每一個轉換爲.txt
。以下VBA
代碼返回Expected End Sub
錯誤。儘管可能有其他表單存在,但數據總是在「表單1」中。將目錄中的所有xlsx文件轉換爲文本
Dos
命令執行並轉換文件,但它們不可讀(與excels格式有關?)。怎麼辦?謝謝:)
該做什麼
cd C:\Users\Desktop\folder
Copy *.xlsx *.txt
VBA
Option Explicit
Private Sub CommandButton1_Click()
Dim oFSO, myFolder
Dim xlText
myFolder = "C:\Users\Desktop\folder"
Set oFSO = CreateObject("Scripting.FileSystemObject")
xlText = -4158 'Excel txt format enum
Call ConvertAllExcelFiles(myFolder)
Set oFSO = Nothing
Call MsgBox("Done!")
Sub ConvertAllExcelFiles(ByVal oFolder)
Dim targetF, oFileList, oFile
Dim oExcel, oWB, oWSH
Set oExcel = CreateObject("Excel.Application")
oExcel.DisplayAlerts = False
Set targetF = oFSO.GetFolder(oFolder)
Set oFileList = targetF.Files
For Each oFile In oFileList
If (Right(oFile.Name, 4) = "xlsx") Then
Set oWB = oExcel.Workbooks.Open(oFile.Path)
For Each oWSH In oWB.Sheets
Call oWSH.SaveAs(oFile.Path & ".txt", FileFormat:=xlTextWindows)
Next
Set oWSH = Nothing
Call oWB.Close
Set oWB = Nothing
End If
Next
Call oExcel.Quit
Set oExcel = Nothing
End Sub
非常感謝你:)。 – Chris
我很高興它有幫助。我做了一些小改動和改進了文本文件名:最初的版本將文件保存爲「Book1.xlsx.txt」(現在它保存爲「Book1.txt」) –