对别人的代码做了改良,实现真正的转换而非同时存在xls文件和xlsx文件。

我在大部分语句上补充了注释,因为有同事提出了这个工作需求,之前从来没接触过VBScript语言,看了别人的代码一眼过去也是看不懂,后来挨个读,边查边学就读通了。也试了Python能跑起来别人的代码,但是对小白不友好,也不可能在同事的电脑上配置这么麻烦的Python环境和pip包管理工具,最简单有效的方式就是通过VBScript来完成了。

原理:使用Kill函数,删除原来的xls文件,留下新增加的xlsx文件。

操作流程如下:

※1.在需要转换的excel所在文件夹中新建一个xlsx的excle;

※2.打开新建的Excle,文件=>选项=>信任中心=>信任中心设置=>隐私选项=>取消勾选“保存时从文件属性中删除个人信息”;

※3.按 alt+F11,选中打开左边当前Excel的Sheet;

※4.将文尾VBA代码粘贴进去,点击顶部菜单栏的运行=>运行子过程/程序编译=>运行。

全部变成xlsx了!

  代码  

Dim iFile(1 To 100000) As String  '声明一个名为iFile的字符串类型的变量
Dim count As Integer '声明一个名为count的整型变量'定义一个名为xls2xlsx的函数
Sub xls2xlsx()iPath = ThisWorkbook.Path   '定义iPath变量的初始值为当前工作簿的路径On Error Resume Nextcount = 0  '控制循环的变量zdir iPath  '调用zdir函数,参数为iPathFor i = 1 To count'选择后缀名为xls的文件If iFile(i) Like "*.xls" And iFile(i) <> ThisWorkbook.FullName ThenMyFile = iFile(i)  '把iFile(i)赋值给临时变量FilePathFilePath = Replace(MyFile, ".xls", ".xlsx")    'FilePath接收替换后的字符串If Dir(FilePath, 16) = Empty Then    '如果不路径为空Set WBookOther = Workbooks.Open(MyFile)  '根据MyFile保存的路径打开工作簿Application.ScreenUpdating = False  '禁止屏幕更新,加快宏运行速度'当前工作簿另存为文件名:FilePath;指定保存工作表时的文件格式为xlOpenXMLWorkbook(即.xlsx扩展名);不自动备份文件ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=FalseKill MyFileWBookOther.Close SaveChanges:=False      '解决不能close 文件问题Application.ScreenUpdating = True    '禁止屏幕更新,加快宏运行速度End If   '结束if条件End If '结束if条件Next
End Sub'定义一个名为zdir的函数
Sub zdir(p)       '访问当前文件夹下所有子文件夹及文件Set fs = CreateObject("scripting.filesystemobject")For Each f In fs.GetFolder(p).FilesIf f <> ThisWorkbook.FullName Then count = count + 1: iFile(count) = fNextFor Each m In fs.GetFolder(p).SubFolderszdir mNext
End Sub

参考文章:

这个文章的代码是把xls另存为一份xlsx,保留了xls。我的代码就是在这个基础上把原本的xls文件删除。

Excel xls批量转换为xlsx - MrDaoRen - 博客园 (cnblogs.com)

VBA实现xls批量转换为xlsx(非新增副本文件)相关推荐

  1. 使用VBA实现xls批量转xlsx(遍历当前文件夹以及子文件夹)

    使用VBA实现xls批量转xlsx Published on Aug 9, 2019 in 编程 with 0 comment 我用Office 2019编辑过的一批xls文件,在Office 201 ...

  2. 【将xls批量转为xlsx】

    将xls批量转为xlsx 一.前提准备:打开开发工具 二.步骤 三.代码 由于 arcgis 导出表是 xls 格式, 但是大量的 excel 需要合并时,无法合并, 需要将 xls 转换为 xlsx ...

  3. C# 实现xls类型转换为xlsx类型

    Office97-2003 创建的Excel文件后缀为xls, Office 2007 之后的版本创建的Excel文件后缀为 xlsx,在C#中使用EPPLUS模块读取2003版本创建的Excel存在 ...

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

    目录 示例 代码 使用HasVBProject属性判断工作簿是否有代码 禁止打开工作簿时执行程序 示例 在某个文件夹下存有若干个以Excel 2003版本存储的工作簿(xls格式).将这些xls格式的 ...

  5. python将excel文件格式从xls转换为xlsx(调用win32com库)

    python调用win32库将xls文件格式转换为xlsx import win32com.client as win32fname = r'C:\Users\90687\Desktop\test\t ...

  6. word文档批量转换为html格式

    有时需要将doc/docx格式的文档批量转换为html格式的网页文件,可以使用以下VBA脚本执行批量转换的操作,需要在安装了宏功能的Word中执行. 以下脚本会搜索指定目录中的doc文档,并逐个进行处 ...

  7. 如何在Excel中将多个Excel文件批量转换为CSV文件?

    在Excel中,我们可以使用"另存为"功能将工作簿转换为CSV文件,但是您知道如何将多个Excel文件批量转换为单独的CSV文件吗? 在本文中,我介绍了一个VBA代码,用于将文件夹 ...

  8. Excel怎么批量将CSV格式转换为xlsx或xls格式?VBA、宏、软件?

    怎么批量将CSV格式转换为xlsx或xls格式? 下面给大家介绍几种方法: 1.原始方法 如果是少量的Excel文件可以采用打开--另存为..,选择想要转换的格式就OK了! 2.利用Excel的VBA ...

  9. 使用python把批量xls文件转换为xlsx

    子涵先生最近遇到了一个任务,被领导喊去做手工搬运工.本不愿手工处理,但经过简单评估后短时间无法实现自动化,加之迫于时间压力,也只好做起了"肌肉运动". 这部分工作大体分为3步,第一 ...

最新文章

  1. mysql 逻辑架构
  2. Tomcat目录介绍以及运行时寻找class的顺序
  3. 2004年c语言试题2,C语言试题(2004~2005第2学期)A重修
  4. IntelliJ IDEA的几种常见的快捷键
  5. “面试不败计划”:集合、日期、异常、序列化、其他知识点
  6. ubuntu服务器安装指南
  7. 【阿里妈妈营销科学系列】第六篇:营销组合模型MMM
  8. Android检测是否有悬浮窗,Android 获取判断是否有悬浮窗权限的方法
  9. 计算机网络按照延伸距离划分为,大学计算机考试练习题.doc
  10. 【转载】生机勃勃的秋菊freeeim
  11. 领导再也不会因为模型刷新不出来批评我啦---论IE扩内存(转载)
  12. YUV格式学习:YUV422P、YV16、NV16、NV61格式转换成RGB24
  13. Mysql for Linux安装配置之——二进制安装
  14. python的xml.dom学习笔记
  15. 关于NGINX下开启PHP-FPM 输出PHP错误日志的设置(已解决)
  16. 1月 23 surface pro 3. windows ubuntu 双系统安装
  17. 玩客云折腾记录(一):编译 ArmBian 系统
  18. 经纬度地理坐标虚拟定位
  19. 杨涛:正解“街区制、密路网”
  20. @RunWith注解的作用

热门文章

  1. 淘宝中所说的sku是什么
  2. 数据库中间件 MyCAT源码分析 —— XA分布式事务
  3. local variable xxx referenced before assignment
  4. Android 接入阿里实人认证
  5. 帝国CMS[!--onclick--]标签动态显示页面点击数,解决刷新页面浏览量无变化的问题
  6. ios 微信端 video 标签 兼容问题
  7. TSGCTF 2021 Welcome to TSG CTF! WP
  8. 铨顺宏RFID:电子汽车车牌系统具有RFID识别功能
  9. 离职前一定要删除这几个文件,不然你的微信聊天记录全被别人看了
  10. C# Winform画图