利用VBA批量转换xls文件格式的工作簿

VBA 多个文件批量搜索文字并将结果添加链接 ThisWorkbook.Sheets("SEARCH").Cells(resultRow, 1).Value = "WorkSheet被隐藏"' Loop through Excel files in the folder 当前文件夹下的所有文件(*.xls*),屏蔽搜索文件本身。MsgBox "文件无法打开" & folderPath & "\" & fileName。MsgBox "检索完成,有" & resultRow - 6 & "个文件存在检索内容" 阅读详情

引言

xls文件格式是Microsoft Excel 2003及更早版本的默认文件格式;而xlsx文件格式是Microsoft Excel 2007及以后版本的默认文件格式。相比xls文件格式,xlsx文件格式的文件更小,支持更多新特性与功能,兼容更多第三方软件,安全性也更高。唯一的缺憾是,xlsx不支持VBA宏代码。

幸运的是,在Microsoft Excel 2007及以后版本,还引入了宏启用工作簿文件格式xlsm。xlsm文件格式支持VBA宏代码,允许用户自定义自动化操作。

总的来说,xlsx和xlsm两种格式都提供了比旧的xls格式更丰富的功能以及更大的灵活性。也正因如此,在实际工作中,我们经常也有批量转换xls文件格式为xlsx或xlsm文件格式的需求。

xls-->xlsx/xlsm

实现思路

1.弹出文件对话框,选择指定文件夹;

2.在该文件夹下,遍历所有xls文件格式的工作簿;

3.如果xls文件格式的工作簿附有VBA项目,转换为xlsm格式;如果没有VBA项目,则转换为xlsx格式。

VBA代码

Sub 批量转换XLS格式的工作簿()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "请选择批量转换XLS工作簿的文件夹路径"
        If .Show Then
            Dim pathSelected As String, fn As String
            pathSelected = .SelectedItems(1)
            fn = Dir(pathSelected & "\*.xls")
            Dim wb As Workbook
            Do While fn <> ""
                If Right(fn, 3) = "xls" Then
                    Set wb = Application.Workbooks.Open(pathSelected & "\" & fn, 0)
                    If wb.HasVBProject Then
                        wb.SaveAs Filename:=pathSelected & "\" & fn & "m", _
                            FileFormat:=xlOpenXMLWorkbookMacroEnabled
                        wb.Close False
                    Else
                        wb.SaveAs Filename:=pathSelected & "\" & fn & "x", _
                            FileFormat:=xlOpenXMLWorkbook
                        wb.Close False
                    End If
                End If
                fn = Dir()
            Loop
            Set wb = Nothing
        End If
    End With
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

推荐阅读

  1. 利用VBA删除工作簿/工作表的所有批注
  2. 利用VBA+SQL查询Excel工作表数据(基本查询)
  3. Excel一键将多个单元格转为复选框
  4. 利用VBA断开多个工作簿的所有链接源
  5. 利用VBA获取指定文件类型的详细信息
利用VBA将xls文件批量转为xlsx 2020-12-11    利用VBA将xls文件批量转为xlsx    对于单个xls文件,只需要利用“另存为"操作来更改文件格式就能够简单地完成,但是对于多个xls甚至是几十个xls文件时,这个工作量就比较麻烦了,因此需要借助exel开发工具中带有的VBA (Visual Basic宏语言),它是一种应用程式视觉化的 Basic 脚本,可以便捷地处理重复性的操作。    在对xls进行处理之前,需要首先分辨一下文件格式    由于部分xls可能是由txt格式文件直接更改文件后缀名得到的,这些xls文件中的记录数会超过2 阅读详情

相关推荐

Excel老鸟的私藏技巧:不用Python,用VBA宏一键批量转换xls到xlsx(含文件选择对话框详解)

本文分享了Excel老鸟的私藏技巧,通过VBA宏一键批量将xls文件转换为xlsx格式,无需依赖Python环境。详细解析了文件选择对话框的设置与优化,提供完整代码及高级应用场景,帮助用户高效完成文件格式转换任务。

weixin_30279671的博客 180

用VBA,将xls批量转换成xlsx

在文件目录下新建一个Excel文档,按alt+F11打开VB界面,在sheet1里复制以下代码,运行即可。

cenwill的博客 961

测试工程师玩转DeepSeek之Prompt

掌握这些提示词技巧,测试工程师可提升与DeepSeek的协作效率至少3倍。建议结合具体项目上下文进行二次优化,并建立团队内部的提示词知识共享库。✅ “为电商支付接口生成包含幂等性验证的测试用例,覆盖网络中断重试场景”❌ “帮我写测试用例”

weixin_44872675的博客 2262

VBA Dir查找文件按指定规则排序

实例需求:C:\Temp目录中的文件如下所示,各位同学肯定知道在VBA中使用`Dir`可以查找文件,其顺序就按照文件名称升序排列,但是此处需要按照指定顺序处理文件,对于每个`Tagx`,需要先处理`Tagx_Before`,然后再处理`Tagx_After`,那么就需要使用自定义排序来处理文件列表。

神奇的BI 664

用OpenPose进行单个或多个人体姿态估计

在计算机视觉中,人体姿态估计(关键点检测)是一个很常见的问题,在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,本文要使用的检测方法就是基于OpenPose的人体姿态估计方法。 一、OpenPose简介 OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络(CNN)和监督学习(SL)并以Caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿...

weixin_42709563的博客 8404

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 383

VBA实现遍历Excel文件将指定的单元格内容拷贝到当前工作簿

选择一个文件夹,遍历其中所有Excel文件,并将每个文件指定的单元格内容拷贝到当前工作簿的目标区域。

colortztzztzt的博客 1017

声发射传感器的工作原理是什么?

介绍声发射传感器的工作原理。

qq_39948394的博客 9246

vba中dir用法_利用Dir函数遍历某文件夹下的所有文件 | VBA实例教程

今天介绍利用Excel VBA的Dir方法来遍历某文件夹下的所有excel文件。还是直接来看例子,假设在D盘有一个叫工作日志的文件夹,里面放着每日的工作记录,都是excel 2007表格,现在由于工作需要要从这里表格中提取数据,那就需要依次对每个Excel表格进行访问。只要知道了工作表的名称,我们就可以用workbook的Open方法或者GetObject方法从工作簿中获得数据,而Dir函数正是起...

weixin_42308943的博客 6601

基于Yolo11的无人机小目标检测系统的设计与性能优化改进项目实现

该项目旨在开发一个基于YOLO11的无人机目标检测系统,能够实时识别并定位无人机拍摄过程中捕捉的小目标。考虑到无人机拍摄的目标通常较小,系统将采用特定的调优策略,以提高小目标的检测精度和召回率。

m0_73723097的博客 1205

彻底解决Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

renkai721的专栏 24万+

VBA小程序--获取文件夹所有的xls 和 xlsx 文件列表(相对路径 + 绝对路径)

Sub 获取文件列表() Dim m As Long, myFile MsgBox ("使用前请先查看路径是否需要变更,另外文件列表会写入当前活动工作表的第一列,确认请按Enter按键,取消请按Ctrl + PauseBaeak") mypath = "F:\每月例行-利润核算\" '最后要加一个反斜杠,不然会认为是一个文件,而不是一个文件列表 嗯,应该是这样... myFile = Dir(mypath &amp; "*.xls*") '可以使用通配符,输出.

STR_Liang的博客 3460

2026年中科曙光嵌入式笔试试卷带答案

2026年中科曙光嵌入式笔试试卷涵盖数字电路、总线协议、时序分析、存储原理及硬件寄存器操作等核心知识点。单选题聚焦SPI/I2C差异、建立/保持时间、ADC作用等基础概念;多选题考察时序约束、非易失存储、BMC功能等综合应用;判断题强化对关键术语的理解;填空题考查基本术语记忆;简答题要求掌握SPI与I2C对比、时序违例后果及BMC管理机制。试题紧扣嵌入式系统开发实际,突出接口协议、时序设计与硬件交互能力,是嵌入式岗位选拔的重要依据。

Open 23

如何将xls批量转换成xlsx

下面是单个xls转换成xlsx的步骤,相信大家都知道 1. 点击“文件”,然后选择“另存为”,并保存到桌面 2.然后点击“保存类型”,选择“Excel 97-2003工作簿”,然后点“保存 但是我有100个文件,能不能批量操作? 答:当然可以,只要用VBA代码就能按上面的操作自动执行100次,帮你批量将.xls转化成.xlsx。 具体操作请看下方动图 VBA代码如...

weixin_44674885的博客 3万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

我在大部分语句上补充了注释,因为有同事提出了这个工作需求,之前从来没接触过VBScript语言,看了别人的代码一眼过去也是看不懂,后来挨个读,边查边学就读通了。也试了Python能跑起来别人的代码,但是对小白不友好,也不可能在同事的电脑上配置这么麻烦的Python环境和pip包管理工具,最简单有效的方式就是通过VBScript来完成了。※2.打开新建的Excle,文件=>选项=>信任中心=>信任中心设置=>隐私选项=>取消勾选“保存时从文件属性中删除个人信息”;对别人的代码做了改良,全部变成xlsx了!..

m0_52309519的博客 4296

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

示例 在某个文件夹下存有若干个以Excel 2003版本存储的工作簿(xls格式)。将这些xls格式的工作簿批量转换成Excel 2007以上版本(xlsx)格式或者启用宏(xlsm)的工作簿。 代码 使用Dir函数查找目录下的所有文件,然后使用工作簿集合(Workbooks)的Open打开文件,并另存为Excel 2007 (xlsx)格式。 Option Explicit Sub 批量转换工作薄() Dim oPath As String '原始文件路径 Di..

复行数十步 1266

vba html 转化为 xlsx,巧用VBA,只需2分钟1000个xls批量转换成xlsx

下面是单个xls转换成xlsx的步骤,相信大家都知道1. 点击“文件”,然后选择“另存为”,并保存到桌面2.然后点击“保存类型”,选择“Excel 97-2003工作簿”,然后点“保存但是我有100个文件,能不能批量操作?答:当然可以,只要用VBA代码就能按上面的操作自动执行100次,帮你批量将.xls转化成.xlsx。具体操作请看下方动图[图片上传失败...(image-17d23e-15370...

weixin_42395171的博客 457

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

在Excel中,我们可以使用“另存为”功能将工作簿转换为CSV文件,但是您知道如何将多个Excel文件批量转换为单独的CSV文件吗? 在本文中,我介绍了一个VBA代码,用于将文件夹中的所有Excel文件批量转换为Excel中的CSV文件。 一、使用VBA将文件夹的Excel文件批量转换为CSV文件 在Excel中,除了VBA,没有内置函数可以快速解决此问题。 启用Excel,然后按Alt + F11键钥匙打开Microsoft Visual Basic应用程序窗口。 点击...

小胖七少爷的博客 1万+

VBA打开已加密的Excel VBA工程文件并批量去除密码同时获取代码中指定内容

每个闯关的Excel xlsm文件中均有下一期闯关题的闯关密码,文章发布后有很多知友找我要下一关的密码,但小妖的密码是写死在VBA代码中的。给了微信信息给小妖,她居然自己也不记得自己每关设置的是什么密码,估计是不想让自己太容易打开。' MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"' MsgBox "对文件特殊加密成功......", 32, "提示"' MsgBox "文件解密成功......", 32, "提示"objWk.Close False '不保存。

xcntime的专栏 1991

vue excel无法打开文件因为文件或文件扩展名无效_Excel文件xls和xlsx的区别与格式之间的批量转换...

编辑:哈雷 |来源:巨盒创意 | 欢迎转发到朋友圈新建excel文件的时候,会发现有两种后缀可以选择,分别是xls和xlsx。今天小编就给大家详解下,两种文件在日常应用中的区别与格式互相转换。xls与xlsx格式的区别1、版本区别:xls为 office 2003 以前的版本,只要是03以前的版本创建的文件都是以.xls为扩展名的;而xlsx则是office 2007以上的版...

weixin_39968722的博客 3470

WPS个人版用户的福音:无需VBA宏,用批处理搞定XLS批量转XLSX的完整流程

本文为WPS个人版用户提供了一种无需VBA宏的XLS批量转XLSX解决方案,通过简单的批处理脚本实现高效自动化转换。方案兼容WPS和Microsoft Office,零成本且操作简单,适合处理大量文件格式转换需求,显著提升办公效率。

aizhi0169的博客 420

把VBA转换成JAVA_Java调用VBA XLS转换XLS

Rem http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlfileformat.aspxSet objArgs = WScript.ArgumentsFullName = objArgs(0)FileName = Left(FullName, InstrRev(FullName, ".")-1)Set ...

weixin_31476341的博客 328

vba html 转化为 xlsx,Excel VBA将一个目录下的所有xls文件批量转换为xlsx文件

Option ExplicitSub xlsTOxlsx()Dim strFilePath As String, strFileName As String, strFileType As StringDim aIndex As Long, arrFileName() As String, strNewName As String'设置文件扩展名标识文件类型strFileType = ".xls"...

weixin_42318727的博客 365

将 XLS 转换为 EXE:xlCompiler Crack

xlCompiler只需单击几下即可将Excel文件转换为应用程序,xl编译器无需编程即可将您的Excel电子表格转换为软件应用程序

控件与插件之大全 5317

xls与csv转换:多工作表合并与拆分

今天工作上遇到了xls与csv互转的场景,分别是xls的多工作表批量转csv,和多个csv纵向合并成一个xls,简单记录一下。 多工作表批量转csv 先用ALT+F11打开VBA编辑窗口,在左边列表框点鼠标右键选插入模块粘贴一个宏: Sub 转换CSV() iPath = ThisWorkbook.Path For n = 1 To Worksheets.Count Name = "\" &amp; Sheets(n).Name &amp; ".csv" filepath = iPath &

IceelfLuo的博客 1045
上一篇: 利用VBA实现工作表批量显示/隐藏
下一篇: 利用Excel函数填充财务报表项目对应的附注序号
VBAMatrix
博客等级 码龄2年 363粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值