使用VBA批量转换Excel格式,由.xls转换成.xlsx

问题分析:

  Excel2007以前的格式是.xls,之后的格式是.xlxs。打开单独的一个Excel文档,使用“另存为”功能,可以很轻松的转换格式。但是面对几百个Excel表这样就太累了,搜索很久,也没发现一个工具可以直接批量进行格式转换。

  最终发现可以使用VBA来实现批量转换Excel格式的功能。大家不要被吓到,VBA我也不懂,代码是从别人那里搞到的,现在也只是知道了怎么使用,但这足够解决问题了

VBA介绍:
  1、VBA是一种编程语言,它依托于Office软件,不能独立的运行,通过VBA可以实现各种Office软件操作的自动化。
  2、Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能。使用Excel的VBA开发的Excel文档,在Excel中运行时需要开启Excel的宏功能,否则此文档的VBA自动化功能将被完全屏蔽,文档的功能无法实现。

执行条件:
  1、Office2007及以上版本的Excel
  2、Excel启用宏

工具下载:
  可以自己新建Excel,编写VBA代码,代码在后面。也可以使用我提供的已经写好的两个,以下是百度网盘中的链接:
    《xls2xlsx.xlsm》
    链接:http://pan.baidu.com/s/1mit3FGc 密码:s57a
    《Convert2xlsx.xlsm》
    链接:http://pan.baidu.com/s/1sluFttb 密码:pguv

功能介绍:
  先介绍这两个工具功能,大家可以根据需要下载。
  《xls2xlsx.xlsm》会在所在文件夹目录中、包括子目录中,遍历所有.xls格式的文件,执行“另存为”操作,然后在原文件当前位置另存为一个同名的.xlsx格式的文件。
  比如:执行前xls2xlsx.xlsm所在的文件夹中有3个.xls格式的文件,同时包含一个子文件夹,子文件夹中也有3个.xls格式的文件

        

  执行后,会生成如下文件:

        

  《Convert2xlsx.xlsm》会在所在文件夹目录中(不包括子目录),遍历所有.xls格式的文件,执行“另存为”操作,然后在当前路径下生成一个文件夹xlsx,这个文件夹中放了所有新生成的文件。
  比如:执行前Convert2xlsx.xlsm所在的文件夹中有3个.xls格式的文件

    

  执行后,会生成如下文件:

        

执行方法:
  1、从上面下载任意一个工具,或者新建一个Excel;
  2、启用宏操作
  一般情况下,打开Excel的时候,会弹出如下警告

    

  如果弹出了这个警告,直接启用就可以了;如果没有出现的话,请参考以下百度经验启用宏http://jingyan.baidu.com/article/39810a23e39b9db637fda651.html
  3、编写执行VBA代码
  这一步新手肯定是不会的,详细地图文介绍就参考百度经验http://jingyan.baidu.com/article/09ea3ede265e8bc0aede39ba.html,我这里只作简单的说明:
    (a)在工作表界面按下组合快捷键Alt+F11或者右键单击任意一个工作表标签,在弹出的右键快捷菜单单击“查看代码”进入VBA编辑环境
    (b)如果是下载的我的工具,可以跳过此步骤;如果是新建的Excel,此时在VBA编辑环境中的“代码窗口”复制粘贴以下两个代码中的一个:
    《xls2xlsx.xlsm》

 1 ‘***********访问当前文件夹下所有子文件夹及文件,
 2 Dim iFile(1 To 100000) As String
 3 Dim count As Integer
 4
 5 Sub xls2xlsx()
 6     iPath = ThisWorkbook.Path
 7     On Error Resume Next
 8     count = 0
 9     zdir iPath
10     For i = 1 To count
11         If iFile(i) Like "*.xls" And iFile(i) <> ThisWorkbook.FullName Then
12             MyFile = iFile(i)
13             FilePath = Replace(MyFile, ".xls", ".xlsx")
14             If Dir(FilePath, 16) = Empty Then
15                 Set WBookOther = Workbooks.Open(MyFile)
16                 Application.ScreenUpdating = False
17                 ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
18                 WBookOther.Close SaveChanges:=False      ‘解决不能close 文件问题
19                 Application.ScreenUpdating = True
20             End If
21         End If
22     Next
23 End Sub
24
25 Sub zdir(p)       ‘访问当前文件夹下所有子文件夹及文件
26   Set fs = CreateObject("scripting.filesystemobject")
27   For Each f In fs.GetFolder(p).Files
28     If f <> ThisWorkbook.FullName Then count = count + 1: iFile(count) = f
29   Next
30   For Each m In fs.GetFolder(p).SubFolders
31       zdir m
32   Next
33 End Sub

    《Convert2xlsx.xlsm》

 1 Sub xls2xlsx()
 2 Dim FilePath, MyFile, iPath, Name, OutPath As String
 3 iPath = ThisWorkbook.Path
 4 OutPath = Dir(iPath & "\xlsx", vbDirectory)
 5 If OutPath = "" Then
 6     MkDir (iPath & "\xlsx")
 7 End If
 8 MyFile = Dir(iPath & "\*.xls")
 9
10 If MyFile <> "" Then
11 Do
12     On Error Resume Next
13     If MyFile = ThisWorkbook.Name Then MyFile = Dir
14     Workbooks.Open (iPath & "\" & MyFile)
15     MyFile = Replace(MyFile, ".xls", ".xlsx")
16     Name = "\" & MyFile
17     FilePath = iPath & "\xlsx" & Name
18     Application.ScreenUpdating = False
19     ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
20     Workbooks(MyFile).Close True
21     Application.ScreenUpdating = True
22     MyFile = Dir
23 Loop While MyFile <> ""
24 End If
25 End Sub

    (c)按下F5快捷键执行这段代码或者在菜单中单击“运行子过程/用户窗体”命令

  PS:需要说明的是,在执行过程中,不要去做其他的事情,不然可能会中断程序的运行

  原创文章,欢迎转载,转载请注明出处!

时间: 2024-12-20 20:00:54

使用VBA批量转换Excel格式,由.xls转换成.xlsx的相关文章

WPS转换Excel格式如何进行操作

?       都用过WPS和Excel两种格式的文件了吧!那大家知道WPS转换Excel是如何进行操作的吗?要知道在WPS中制作的表格的话是在没有办法office中打开的,考虑到部分人对WPS操作不够熟练,在这里可以把WPS通过PDF转换器转换成Excel格式.那它的操作流程是怎样的呢?不妨看看下面小编是怎样操作的. 1.打开自己的电脑,先需要在电脑桌面上安装一款可以转换文件格式的工具,进入到百度中搜索迅捷PDF转换器进行安装. 2.进入到转换器中选择WPS文件转换栏目下的"文件转换Excel

PDF如何在线转换Excel格式

现如今PDF文档格式已经用到的越来越多了,很多PDF文件带有表格数据,但我们却不能在PDF文件里进行类似于Excel的操作,不易于修改和编辑,所以我们需要将PDF转换成Excel格式,今天小编就教教大家PDF如何在线转换成Excel格式.第一步:打开浏览器,搜索关键词迅捷PDF在线转换器.第二步:进入转换器首页后,在导航栏内找到文档转换,在下拉框中选择PDF转Excel.第三步:点击PDF转Excel后,点击选择文件加入待转换的文件,也可直接拖动PDF文件添加.第四步:添加完所需要转换的文件后,

excel批量转换为CSV格式,xls批量导出csv格式

工具/原料 excel 2013 地址链接:http://pan.baidu.com/s/1c1ZABlu 密码:d3rc 方法/步骤 首选我们把需要导出为CVS的Excel文件整理集中到一个文件夹中.然后新建一个文件夹用来保存CSV文件的.支持Xlsx.xls格式.   新建一个EXCEL表格,打开后,点击菜单栏上的"开发工具":功能区下点击打开Visual Basic.   如果菜单栏上没有开发工具,则在选项中添加.点击文件,弹出菜单选择选项.在EXCEL选项中,点击自定义功能区,

利用VBA批量给Excel添加超链接

主要思想是先给单元格设置名称,再设置超链接 代码如下: Sub creat_link() Dim Source As String Source = "t1" Dim Target As String Target = "t2" Dim i As Integer i = 1 Dim j As Integer j = 1 Do While i < 10 Dim Svalue As String Svalue = Sheets(Source).Cells(i, 1

PDF表格到Excel格式的转换系统-RainbowPDF2.0

证券公司处理上市公司PDF会计报表的有力工具 高精度将PDF表格到Excel格式的转换系统 解决证券公司统计上市公司的会计报表时,PDF报表的数据输入问题! 目前上市公司的会计报表全部以PDF格式上报到交易所,并且为了安全,实施了加密.禁止修改.禁止打印.禁止文字抽取等各种保护措施,给证券公司带来了很大困难,统计上市公司的数据只好重新把数据用手工方式输入一遍. 北京红樱枫软件有限公司的RainbowPDF软件解决了您的大麻烦,利用它可以毫不费劲的把PDF中的表格数据自动转换到Excel中.而且表

PDF→Excel格式转换工具集锦!

1. Free PDF to Excel Converter Free PDF to Excel Converter是一个把PDF文件转换为Excel格式的多功能免费程序.它支持批量处理,同时也支持XLSX和XLS以及CSV三种输出格式你可以在它的工具栏上点击"添加PDF文件"或者"添加文件夹"来转换PDF文件.添加文件之后点击转换按钮就开始处理程序了.你也可以只点击需要处理的页面,合并所有的PDF文件到一个Excel文件.它会试图保留格式,但可能不完全成功,但是所

使用Apache POI导出Excel小结--导出XLS格式文档

使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI导出Excel小结--导出XLSX格式文档 使用Apache POI导出Excel--大数量导出 导出XLS格式文档 做企业应用项目难免会有数据导出到Excel的需求,最近在使用其,并对导出Excel封装成工具类开放出来供大家参考.关于Apache POI Excel基本的概念与操作我在这里就不啰嗦

pdf怎么转换成excel格式 超简单

可编辑文档转换为不可编辑文档是非常简单的,比如将word或者excel转换成jpg或者pdf,office或者wps软件本身的最新版就自带有这个功能.但是如果我们要将PDF这种不可修改编辑的文档转换成可编辑的形式就会稍微麻烦一点,因为这种格式是任你怎么放大缩小都不会改变文件的排版方式,虽然阅读起来很方便.那怎么办呢?下面小编教给大家一个方法,可以将PDF转换成Excel格式,超简单! 把PDF格式的文件精确转换成EXCEL表格,这边我们可以选择一款叫"迅捷PDF转换器"的软件. (pd

Excel导入DataTable兼容2003-2012(请细心查看注释)以及 DataTable导出Excel(导出格式2003.xls)注释:需要引用NPOI

1.#region Excel导入DataTable兼容2003-2012(请细心查看注释)/// <summary> /// 读取Excel文件到DataSet中/// 注释1:2012导出如报错“ System.InvalidOperationException: 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序.”解决:下载2007 Office system 驱动程序:数据连接组件安装http://download.microsoft.com/downl