目录

示例

代码

使用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格式相关推荐

  1. Excel 2010 VBA 入门 067 导入多个工作簿中的工作表

    目录 示例 实现代码 导入多个工作簿中的工作表 Application. ScreenUpdating属性 示例 如图所示,在同一个目录下有多个工作表名称相同的工资汇总月报.现希望通过VBA建立该多个 ...

  2. Excel 2010 VBA 入门 129 利用窗体向工作表中录入数据

    目录 题 码 窗体控件与工作表的交互 窗体的事件 窗体中ControIs集合访问控件 控件的排列 使用控件数组进行赋值 题 如图所示,该表为某公司订单记录表,其中所有的列都是必填的,订单编号为自动生成 ...

  3. Excel 2010 VBA 入门 034 创建图片批注

    目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...

  4. Excel 2010 VBA 入门 139 创建工作簿级的自定义选项卡

    目录 题 码 Excel工作簿的实质 XML简介 customUI.xml 常用的功能区控件及通用属性 tabs控件和tab控件 group控件 命令控件 内置控件的ID customUI.xml中控 ...

  5. Excel 2010 VBA 入门 004 保存带有宏的工作薄

    目录 操作方法 步骤1 单击"文件"菜单中的"另存为"子菜单. 步骤2  在"另存为"窗口中,保存类型选择"Excel启用宏的工作 ...

  6. Excel 2010 VBA 入门 098 导入Access数据库的数据

    示例 Access是微软Office组件的数据库软件,使用它可以进行简单的数据库软件的开发.但Access的图表功能和数据分析功能不如Excel强大,常用的做法可以将Access中的数据导入 Exce ...

  7. Excel 2010 VBA 入门 037 获取最后一行数据的行数

    目录 示例: 实现代码1 使用Find方法查找最后的单元格 Find方法按行查找和按列查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据 ...

  8. Excel 2010 VBA 入门 066 读取其他工作簿的数据

    目录 示例 实现代码 打开关闭的工作簿 示例 如图所示,在"数据库.xlsx"工作簿中存有"销售数据",在相同目录下的工作簿  希望能够将该工作簿中该工作表中的 ...

  9. Excel 2010 VBA 入门 124 日期选择控件

    目录 码 DTPicker控件 DTPicker控件的时间和日期的切换 DTPicker控件的日期输入方式 DTPicker控件的Value属性与Change事件 使用DTPicker控件实现日期选择 ...

最新文章

  1. CentOS 7更新时出现Multilib version problems
  2. bootstrap源码里的function加上了+号
  3. python映射类型-什么是python中唯一的映射类型
  4. C++ Queues(队列)
  5. ABB 机器人 添加多任务
  6. Linux命令大全搜索网站模板
  7. HBase之Region上Spilt流程分析
  8. 软件工程概论第十三周学习进度
  9. 3dmax如何显示参考图_3dmax怎么在视图中放入参照
  10. Prezi 7 大图形设计技巧,让视觉思维落地生根
  11. java类型的对象可以存储属性_重识JVM(一)-类与对象在JVM中是如何存储的
  12. 租用服务器多开虚拟机,服务器可以多开虚拟机
  13. Oracle脏读处理方式
  14. 读书笔记---《小强升职记》
  15. 用WORD批量制作工作证件
  16. 正文样式设置必看:你知道最好不要直接在正文样式中设置首行缩进吗
  17. 汽车电子功能安全标准ISO26262解析(五)——FTA
  18. 微软:欧洲美国Windows10安装率超Win7
  19. cucumber java hooks_Cucumber入门之_HooksBackground
  20. 【Nginx】Nginx配置实例-反向代理

热门文章

  1. sendgrid_使用SendGrid宇宙函数发送电子邮件
  2. win10——microsoft同步用户主题桌面背景的本地位置、默认背景位置、双屏双背景图设置
  3. 智能家居创意产品一智能插座
  4. blender3.3在视频中添加文本
  5. excel 冻结多列窗口
  6. 国学经典大全android,国学经典大全
  7. 2021年3月最新的山东大学网络认证的网址
  8. IT外企那点儿事--也说跳槽
  9. 人工免疫算法c语言实例,毕业设计_蚁群算法模拟系统的设计与实现.doc
  10. 几张图片生成3D模型?距离真正的AI建模还有多远?