批量互转(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