**批次转换Excel存档格式, 由xls转为xlsx
xls格式是Excel2003及以前的Excel版本, 该格式数据只支援到256列和65536行, 且xls格式与xlsx格式档案大小也有差异, 档案体积的差异最小有2倍之多, 最大有10倍之多
Sub ConvertToXlsx() 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 'xls 存放的资料夹 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) '转为 xlsx 后要存放的资料夹 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 '开启xls 另存为xlsx Do While strFile <> "" If Right(strFile, 3) = "xls" Then Set xWbk = Workbooks.Open(Filename:=strPath & strFile) xWbk.SaveAs Filename:=xRPath & strFile & "x", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False xWbk.Close SaveChanges:=False End If strFile = Dir Loop Application.DisplayAlerts = True Application.ScreenUpdating = TrueEnd Sub