批量互轉(xls-xlsx-csv)


 1、獲取原文件的名稱

獲取原文件文件名,但是不帶擴展名:Newname = Left(File, Application.Find(".", File) - 1)   

2、以新格式保存

 Wb.SaveAs Filename:=MyPath & Newname & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

這一段是復制宏命令中的另存為的代碼,修改了儲存路徑和文件名稱。

3、批量互轉(xls-xlsx-csv)

下面三行可以互換,看需要輸出什么格式。

Wb.SaveAs Filename:=MyPath & Newname & ".xlsx", FileFormat:=xlOpenXMLWorkbook

Wb.SaveAs Filename:=MyPath & Newname & ".csv", FileFormat:=xlCSV

Wb.SaveAs Filename:=MyPath & Newname & ".xls", FileFormat:=xlOpenXMLWorkbook

 

PS: 對比參考

 和這篇:

https://www.cnblogs.com/redufa/p/13685914.html

思路類似,不同的地方:

1)一個用字符串函數instr,一個用find函數;

     用法和例子見:

    http://www.360doc.com/content/15/0216/08/21373269_448907032.shtml

2)一個用do while循環,一個用  Do Until ;

3)判斷語句一個用<>,一個判斷字符串個數的len函數。

 

Sub xls2xlsx()
'Dim Wb As Workbook, MyPath, File   As String
 MyPath = ThisWorkbook.Path & "\"
 File = Dir(MyPath & "*.xls*") 
 Do While File <> "" '遍歷所有文件
    If File <> ThisWorkbook.Name Then '不是 當前工作簿
       Set Wb = Workbooks.Open(MyPath & File)
           Newname = Left(File, Application.Find(".", File) - 1)
             Wb.SaveAs Filename:=MyPath & Newname & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

                 Wb.Close False '關閉工作簿 不保存

  End If

     File = Dir

Loop
End Sub
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM