通常xls格式文件来自于应用软件系统导出,比如银行系统导出的交易流水、发票系统导出的开票数据、财务软件导出的各类账表、纳税申报表以及社保网站导出的社保明细等。
但是我们日常使用的excel文件通常是xlsx格式,xlsx格式文件相对于xls格式文件更小,运行效率更高。
那么我通常会将xls格式文件转换为xlsx格式文件,如果单个文件,只要打开xls格式文件,然后另存为xlsx格式。
如果遇到多个文件转换时,工作量就大了,那么就得通过VBA进行处理了。如何将多个xls格式文件转换为xlsx格式文件呢?我用VBA代码进行转换,具体执行步骤如下:
1、按住 ALT F11 键打开 Microsoft Visual Basic应用程序窗口。
2、点击插入 > 模块,然后将以下代码粘贴到模块窗口。
VBA代码:一次将多种xls格式转换为xlsx格式:
Sub ConvertToXlsx()
'Updateby Extendoffice
Dim strPath As String
Dim strFile As String
Dim xWbk As Workbook
Dim xSFD, xRFD As FileDialog
Dim xSPath As String
Dim xRPath As String
Set xSFD = Application.FileDialog(msoFileDialogFolderPicker)
With xSFD
.Title = "Please select the folder contains the xls files:"
.InitialFileName = "C:\"
End With
If xSFD.Show <> -1 Then Exit Sub
xSPath = xSFD.SelectedItems.Item(1)
Set xRFD = Application.FileDialog(msoFileDialogFolderPicker)
With xRFD
.Title = "Please select a folder for outputting the new files:"
.InitialFileName = "C:\"
End With
If xRFD.Show <> -1 Then Exit Sub
xRPath = xRFD.SelectedItems.Item(1) & "\"
strPath = xSPath & "\"
strFile = Dir(strPath & "*.xls")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Do While strFile <> ""
If Right(strFile, 3) = "xls" Then
Set xWbk = Workbooks.Open(Filename:=strPath & strFile)
xWbk.SaveAs Filename:=xRPath & strFile & "x", _
FileFormat:=xlOpenXMLWorkbook
xWbk.Close SaveChanges:=False
End If
strFile = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
3、然后按 F5 键运行此代码,将显示一个窗口,请选择一个包含要转换的xls文件的文件夹,请参见屏幕截图:
4。然后,点击 确定,会弹出另一个窗口,请选择要输出新转换后文件的文件夹路径,请参见屏幕截图:
5、然后,点击 确定,完成转换后,您可以转到指定的文件夹预览转换结果,请参见屏幕截图:
通过上述步骤,就可以批量完成xls格式文件转换为xlsx格式文件。
代码来源于网络
本文为原创,未经许可禁止转载
Vivian_Lin 编辑于2022年7月27日,欢迎留言与转发,感兴趣的朋友也可以在后台私信咨询。