1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Excel VBA 入门 100 将xls格式工作簿批量转换为xlsx格式

Excel VBA 入门 100 将xls格式工作簿批量转换为xlsx格式

时间:2020-08-06 23:43:11

相关推荐

Excel  VBA 入门 100 将xls格式工作簿批量转换为xlsx格式

目录

示例

代码

使用HasVBProject属性判断工作簿是否有代码

禁止打开工作簿时执行程序

示例

在某个文件夹下存有若干个以Excel 版本存储的工作簿(xls格式)。将这些xls格式的工作簿批量转换成Excel 以上版本(xlsx)格式或者启用宏(xlsm)的工作簿。

代码

使用Dir函数查找目录下的所有文件,然后使用工作簿集合(Workbooks)的Open打开文件,并另存为Excel (xlsx)格式。

Option ExplicitSub 批量转换工作薄()Dim oPath As String'原始文件路径Dim oFName As String '原始文件名Dim dPath As String'目标文件路么Dim dFName As String '目标文件名oPath = ThisWorkbook.Path & "\原工作薄"dPath = ThisWorkbook.Path & "\转换结果"'打开工作薄时强制禁止宏Application.AutomationSecurity = msoAutomationSecurityForceDisableApplication.DisplayAlerts = FalseoFName = Dir(oPath & "*.xls")Do While oFName <> ""With Workbooks.Open(oPath & oFName)If .HasVBProject ThendFName = oFName & "m".SaveAs dPath & dFName, xlOpenXMLWorkbookMacroEnabledElsedFName = oFName & "x".SaveAs dPath & dFName, xlOpenXMLWorkbookEnd If.Close FalseEnd WithoFName = DirLoopApplication.AutomationSecurity = msoAutomationSecurityByUIApplication.DisplayAlerts = TrueEnd Sub

使用HasVBProject属性判断工作簿是否有代码

Excel文件的格式仅能通过SaveAs方法另存工作簿而实现。在Excel 以前,对一般的工作簿而言,无论是否在其中有程序,均以xls格式存储。而自Excel 开始,带有程序的工作簿则必须保存为启用宏的工作簿(xlsm)格式,否则所有的代码将被删除。因而,首先需要判断工作簿是否有代码。而Workbook对象的HasVBProject属性则可以反映某个工作簿是否有VB工程,即该工作簿是否有代码。当该属性为True时,则表明工作簿中含有代码,反之则没有代码。

禁止打开工作簿时执行程序

当工作簿中存在自动运行的宏代码(如写在Workbook的Open事件中的宏)时,那么在打开工作簿时,该宏代码会自动执行。而本例由于仅是简单的转换格式,因而不需要执行任何被

转换的工作簿的代码。为禁止打开工作簿时代码会自动运行,则应设置Application对象的AutomationSecurity属性的值。该属性是设置打开文件时的安全性级别,其值可以为中的任何一个常量。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。