首页 - 专题 -  - 正文1

xls批量转xlsx,工作簿汇总不受阻

Excel2007以前的格式是.xls,之后的格式是.xlsx。打开单独的一个Excel文档,使用“另存为”功能,可以很轻松的转换格式。但是面对几百个Excel表这样就太累了,尤其是要用PowerQuery做工作簿汇总,xls格式不支持,批量转xlsx就更有必要了。

方法:
1.所有xls保存一个文件夹;
2.新建Excel,格式存为xlsm(Excel启用宏的工作簿);
3.工作表右键——查看代码——粘贴下面宏代码——运行;

  1. Sub xls_To_xlsx()  
  2.   
  3. Dim FilePath, MyFile, iPath, Name, OutPath As String  
  4. iPath = ActiveWorkbook.Path  
  5. OutPath = Dir(iPath & "\xlsx", vbDirectory)  
  6.   
  7.     If OutPath = "" Then  
  8.         MkDir (iPath & "\xlsx")  
  9.     End If  
  10.     MyFile = Dir(iPath & "\*.xls")  
  11.       
  12.   
  13.     If MyFile <> "" Then  
  14.         Do  
  15.             On Error Resume Next  
  16.             If MyFile = ActiveWorkbook.Name Then MyFile = Dir  
  17.             Workbooks.Open (iPath & "\" & MyFile)  
  18.             MyFile = Replace(MyFile, ".xls", ".xlsx")  
  19.             Name = "\" & MyFile  
  20.             FilePath = iPath & "\xlsx" & Name  
  21.             Application.ScreenUpdating = False  
  22.             ActiveWorkbook.SaveAs Filename:=FilePathFileFormat:=xlOpenXMLWorkbookCreateBackup:=False  
  23.             Workbooks(MyFile).Close True  
  24.             Application.ScreenUpdating = True  
  25.             MyFile = Dir  
  26.         Loop While MyFile <> ""  
  27.     End If  
  28.   
  29. End Sub