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”) –