VBA转换选择路径下的文件夹及其子文件夹中的xls格式文件为xlsx格式并另存为当前路径下xlsx文件夹中在xlsx文件夹中按原文件顺序存入相同名称的子文件夹中
以下是一个VBA示例代码,可以实现您的要求:
Sub ConvertXLSFilesToXLSX()
Dim mainPath As String
Dim folderPath As String
Dim xlsxFolderPath As String
Dim fso As Object
Dim folder As Object
Dim subFolder As Object
Dim file As Object
' 设置主文件夹路径
mainPath = "选择路径"
' 创建保存xlsx文件的文件夹
xlsxFolderPath = mainPath & "\xlsx"
If Not CreateFolder(xlsxFolderPath) Then
MsgBox "创建xlsx文件夹失败!"
Exit Sub
End If
' 创建文件系统对象
Set fso = CreateObject("Scripting.FileSystemObject")
' 遍历主文件夹下的所有子文件夹
Set folder = fso.GetFolder(mainPath)
For Each subFolder In folder.SubFolders
' 遍历子文件夹下的所有.xls文件
For Each file In subFolder.Files
If fso.GetExtensionName(file.Name) = "xls" Then
' 将.xls文件转换为.xlsx
ConvertXLSToXLSX file.Path, xlsxFolderPath & "\" & subFolder.Name & "\" & Replace(file.Name, ".xls", ".xlsx")
End If
Next file
Next subFolder
MsgBox "转换完成!"
End Sub
Function CreateFolder(folderPath As String) As Boolean
On Error Resume Next
MkDir folderPath
On Error GoTo 0
If Dir(folderPath, vbDirectory) = "" Then
CreateFolder = False
Else
CreateFolder = True
End If
End Function
Sub ConvertXLSToXLSX(filePath As String, savePath As String)
Dim xlsFile As Workbook
Dim xlsxFile As Workbook
' 打开.xls文件
Set xlsFile = Workbooks.Open(filePath)
' 另存为.xlsx文件
xlsFile.SaveAs savePath, FileFormat:=xlOpenXMLWorkbook
' 关闭工作簿
xlsFile.Close SaveChanges:=False
End Sub
使用时,您需要将代码中的"选择路径"替换为您的选择路径。请确保在选择路径下存在一个名为xlsx的文件夹,用于保存转换后的.xlsx文件。
此代码将遍历选择路径下的文件夹及其子文件夹中的.xls文件,并将其转换为.xlsx文件,然后另存为当前路径下xlsx文件夹中的相应子文件夹中。转换后的.xlsx文件将按原文件顺序存入相同名称的子文件夹中
原文地址: http://www.cveoy.top/t/topic/h73c 著作权归作者所有。请勿转载和采集!