Excel 2010 VBA 入门 100 将xls格式工作簿批量转换为xlsx格式
目录
示例
代码
使用HasVBProject属性判断工作簿是否有代码
禁止打开工作簿时执行程序
示例
在某个文件夹下存有若干个以Excel 2003版本存储的工作簿(xls格式)。将这些xls格式的工作簿批量转换成Excel 2007以上版本(xlsx)格式或者启用宏(xlsm)的工作簿。
代码
使用Dir函数查找目录下的所有文件,然后使用工作簿集合(Workbooks)的Open打开文件,并另存为Excel 2007 (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 = True
End Sub
使用HasVBProject属性判断工作簿是否有代码
Excel文件的格式仅能通过SaveAs方法另存工作簿而实现。在Excel 2007以前,对一般的工作簿而言,无论是否在其中有程序,均以xls格式存储。而自Excel 2007开始,带有程序的工作簿则必须保存为启用宏的工作簿(xlsm)格式,否则所有的代码将被删除。因而,首先需要判断工作簿是否有代码。而Workbook对象的HasVBProject属性则可以反映某个工作簿是否有VB工程,即该工作簿是否有代码。当该属性为True时,则表明工作簿中含有代码,反之则没有代码。
禁止打开工作簿时执行程序
当工作簿中存在自动运行的宏代码(如写在Workbook的Open事件中的宏)时,那么在打开工作簿时,该宏代码会自动执行。而本例由于仅是简单的转换格式,因而不需要执行任何被
转换的工作簿的代码。为禁止打开工作簿时代码会自动运行,则应设置Application对象的AutomationSecurity属性的值。该属性是设置打开文件时的安全性级别,其值可以为中的任何一个常量。
常 量 |
值 |
说 明 |
msoAutomationSecurityLow . |
l |
安全级别低,运行所有的宏 |
msoAutomationSecurityByUI |
2. |
按照当前Excel的设置决定安全级别 |
msoAutomatiouSecurityForceDisable |
3- |
强制禁用宏 |
Excel 2010 VBA 入门 100 将xls格式工作簿批量转换为xlsx格式相关推荐
- Excel 2010 VBA 入门 067 导入多个工作簿中的工作表
目录 示例 实现代码 导入多个工作簿中的工作表 Application. ScreenUpdating属性 示例 如图所示,在同一个目录下有多个工作表名称相同的工资汇总月报.现希望通过VBA建立该多个 ...
- Excel 2010 VBA 入门 129 利用窗体向工作表中录入数据
目录 题 码 窗体控件与工作表的交互 窗体的事件 窗体中ControIs集合访问控件 控件的排列 使用控件数组进行赋值 题 如图所示,该表为某公司订单记录表,其中所有的列都是必填的,订单编号为自动生成 ...
- Excel 2010 VBA 入门 034 创建图片批注
目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...
- Excel 2010 VBA 入门 139 创建工作簿级的自定义选项卡
目录 题 码 Excel工作簿的实质 XML简介 customUI.xml 常用的功能区控件及通用属性 tabs控件和tab控件 group控件 命令控件 内置控件的ID customUI.xml中控 ...
- Excel 2010 VBA 入门 004 保存带有宏的工作薄
目录 操作方法 步骤1 单击"文件"菜单中的"另存为"子菜单. 步骤2 在"另存为"窗口中,保存类型选择"Excel启用宏的工作 ...
- Excel 2010 VBA 入门 098 导入Access数据库的数据
示例 Access是微软Office组件的数据库软件,使用它可以进行简单的数据库软件的开发.但Access的图表功能和数据分析功能不如Excel强大,常用的做法可以将Access中的数据导入 Exce ...
- Excel 2010 VBA 入门 037 获取最后一行数据的行数
目录 示例: 实现代码1 使用Find方法查找最后的单元格 Find方法按行查找和按列查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据 ...
- Excel 2010 VBA 入门 066 读取其他工作簿的数据
目录 示例 实现代码 打开关闭的工作簿 示例 如图所示,在"数据库.xlsx"工作簿中存有"销售数据",在相同目录下的工作簿 希望能够将该工作簿中该工作表中的 ...
- Excel 2010 VBA 入门 124 日期选择控件
目录 码 DTPicker控件 DTPicker控件的时间和日期的切换 DTPicker控件的日期输入方式 DTPicker控件的Value属性与Change事件 使用DTPicker控件实现日期选择 ...
最新文章
- CentOS 7更新时出现Multilib version problems
- bootstrap源码里的function加上了+号
- python映射类型-什么是python中唯一的映射类型
- C++ Queues(队列)
- ABB 机器人 添加多任务
- Linux命令大全搜索网站模板
- HBase之Region上Spilt流程分析
- 软件工程概论第十三周学习进度
- 3dmax如何显示参考图_3dmax怎么在视图中放入参照
- Prezi 7 大图形设计技巧,让视觉思维落地生根
- java类型的对象可以存储属性_重识JVM(一)-类与对象在JVM中是如何存储的
- 租用服务器多开虚拟机,服务器可以多开虚拟机
- Oracle脏读处理方式
- 读书笔记---《小强升职记》
- 用WORD批量制作工作证件
- 正文样式设置必看:你知道最好不要直接在正文样式中设置首行缩进吗
- 汽车电子功能安全标准ISO26262解析(五)——FTA
- 微软:欧洲美国Windows10安装率超Win7
- cucumber java hooks_Cucumber入门之_HooksBackground
- 【Nginx】Nginx配置实例-反向代理