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