2 weixin 29832331 weixin_29832331 于 2016.01.21 13:00 提问

vba 自动加载宏 批量打开并保存xls

把下面修改成遍历当前目录,而不是子目录,还有就是如何自动加载宏
Sub test()
Dim mPath As String, fA As String, mAry(1 To 1000), k As Integer, i As Integer, wb As Workbook
On Error Resume Next
If Workbooks.Count > 1 Then
MsgBox "关闭其他工作簿!": Exit Sub
'----------设置父文件夹路径-----
mPath = "D:\Project overview 2015"
fA = Dir(mPath & "*", vbDirectory)
'开始收集子目录名称
k = 0
Do While fA <> ""
If fA <> "." And fA <> ".." Then
If (GetAttr(mPath & "\" & fA) And vbDirectory) = vbDirectory Then
k = k + 1
mAry(k) = fA
End If
End If
fA = DirLoop
'--------------遍历各子目录--------
Application.DisplayAlerts = False
For i = 1 To k
fA = Dir(mPath & "\" & mAry(i) & "*.xls*")
Do While fA <> ""
If fA <> ThisWorkbook.Name Then
Set wb = Workbooks.Open(mPath & "\" & mAry(i) & "\" & fA, , False) '打开
wb.Save '保存
wb.Close True '关闭
End If
fA = Dir
Loop
Next i
Application.DisplayAlerts = True
MsgBox "处理完成!"
End Sub

2个回答

weixin_29832331
weixin_29832331   2016.01.26 16:18
已采纳

哎,没想到还是自己解决了,查了下dir就搞定了

Mr_dsw
Mr_dsw   Ds   Rxr 2016.01.21 13:17

vb用的少了,无能为力啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
将多个Excel文件批量导入某个Excel文件中去的VBA宏
压缩文件中包括一个包含宏代码的Excel文件Sheet Macros.xls以及其他四个测试文件工作表 1~4。 宏的功能为(1)选中Excel表格中的某些行或列,运行某个Macro,自动根据选中的cells创建新的worksheets,worksheets的名字就是选中的cells的名字。(2)创建新的worksheet的同时,要把某指定目录下与新的worksheet同名的Excel文件的内容copy到新的worksheet中去。
Excel VBA-批量将多个sheet表另存为单独的工作薄文件
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I
在Excel中应用VBA批量导入数据
在Excel中应用VBA批量导入数据  马维峰 1.       问题由来当一个漂亮MM向你请教如何录制并修改一个宏,把她每次的实验数据(几十个数据文件)导入Excel时,你感慨道:“很多Excel专家会录制一个宏来解决问题,然后每次使用的时候修改代码并粘贴到需要的地方,对于一个合格的程序员,这是最要命的事情。” 漂亮MM打断并告诉你,她不是程序员,也不想做程序员,然后
Excel VBA打开文件目录
WinXP系统下使用VBA打开文件并拷贝内容至新的工作表 Sub Get_data()     Dim objDialog As Object, blnFile As Boolean, strLoadFile As String, filename As String     Set objDialog = CreateObject("UserAccounts.CommonDialog")
Excel2010VBA批量插入或导出图片
以前用Excel2003做了些宏,在网上还有不少粉丝,因一些功能在Excel2010中无法使用,故重新整理,欢迎指正; 本Excel中的宏在Excel2010中测试表现出色; 运行宏前,要保证EXCEL没有禁用宏。 Michael Ho QQ: 9900060 ----------------------- 本Excel有以下功能: 插入图片1 1.点击执行后,会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 2.宏会自动复制Sheet2到新工作簿,并插入你所选文件夹中的全部JPG图片到B列,对应的图片名自动填到C列; 3.图片的大小会自动适应Sheet2的B3单元格,因此可以在点击执行前调整Sheet2的B3单元格的大小来控制插入图片的大小。 -------- 插入图片2 1.点击执行后,会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 2.宏会自动复制Sheet3到新工作簿,并插入你所选文件夹中的全部JPG图片制作图册,对应的图片名自动填到图片下方; -------- 插入图片3 如果用户自己的Excel文件中有一列是型号,该宏可以插入指定文件夹里以型号命名的JPG图片到另一列; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+I (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏InsertPic3); 4.然后会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 5.在弹出的对话框中指定型号在第几列,图片要插入到第几列,以及从哪一行开始; 6.图片的大小会自动适应你设定的第一行要插入图片的单元格,因此提前调整那个单元格的大小可以控制插入图片的大小。 ------------- 删除活动工作表中所有图片 Ctrl+d 删除活动工作表里所有的JPG图片,(不一定是本工作簿中的工作表); 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+d (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏DelPic); ------------- 导出活动工作表中被选中的一张JPG图片 Ctrl+e 导出活动工作表中被选中的一张JPG图片,(不一定是本工作簿中的工作表); 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.请选中一张要导出的图片; 4.在你的文件中按Ctrl+e (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏OutputOnePic); 5.在弹出的对话框中指定图片要保存的名字; 1.不管图片在Excel中是否被缩放过,导出的图片是按图片的原始尺寸进行保存。 2.在桌面上会自动新建一个"OutputPic"的文件夹,导出的图片将会存在那个文夹里; 3.如果文件夹中已有相同名字的文件,则后面导出的文件会自动加上(v1), (v2), (v3)... ------------- 导出活动工作表中所有JPG图片 Ctrl+f 导出活动工作表中所有JPG图片,并且图片名自动使用指定列中的图片名; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+f (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏OutputAllPic); 4.在弹出的对话框中指定图片所在列,图片名所在的列; 1.不管图片在Excel中是否被缩放过,导出的图片是按图片的原始尺寸进行保存; 2.在桌面上会自动新建一个"OutputPic"的文件夹,所有导出的图片将会存在那个文夹里; 3.如果文件夹中已有相同名字的文件,则后面导出的文件会自动加上(v1), (v2), (v3)... ---------------- 对指定文件夹中的JPG图片进行重命名 Ctrl+r 利用活动工作表中的所有图片的旧名与新名的对照,对指定文件夹中JPG图片进行重命名; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+r (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏RenamePic); 4.在弹出的对话框中指定图片旧名所在列和图片新名所在的列; 1.可以结合插入图片的宏,将所有图片的旧名输入到Excel中,再在另一列中填上新图片名,然后使用该宏。 2.如果顺利运行,会在原来那个文件夹下面新建一个叫“New”的子文件夹,所有重命好名的图片会自动放入子文件夹里; 3.如果文件夹中已有相同名字的文件,则后面的文件会覆盖原来的文件。
批量将Excel2007文件格式xlsx转换为Excel2003文件格式xls的宏原型
有同事要讲几百个xlsx文件转换为xls,于是写了一个原型。当然前提是要在装Excel2007的机器上运行才行。 Sub Macro1() ' ' Macro1 Macro ' Dim myFiles Dim i As Long myFiles = Dir("D:/1/*.xlsx") On Error Resume Next Application.ScreenUpdating = True Application.DisplayAler
VBA加载宏基础
<br />一、简介<br /><br />加载宏可以扩展Excel的功能,与Excel的内置功能一致,是为Excel提供自定义命令或自定义功能的补充程序。某些加载宏还提供了可用于公式中的新的工作表函数。<br /><br />使用某加载宏必须已安装,且须在加载宏对话框中进行调用。加载宏默认安装在Microsoft Office/Office 文件夹中的 Library 文件夹或 Addins 文件夹,或它们的子文件夹中。<br /><br />其中,Excel加载宏是包含了所需要实现的功能的函数或过程的工
R语言︱用excel VBA把xlsx批量转化为csv格式
笔者寄语:批量读取目前看到有以下几种方法:xlsx包、RODBC包、批量转化成csv后读入。本章来自博客:http://www.cnblogs.com/weibaar/p/4506144.html 在上面的尝试已经发现,xlsx本身就是这个复杂问题的最根本原因。与之相反,R对csv等文本格式支持的很好,而且有fread这个神器,要处理一定量级的数据,还是得把xlsx转化为csv格
加载宏(Addin)使用方法
Office VBA Addin加载宏是一种使用VBA编写的程序,它通过加载设置,可以随Office程序启动而自动加载运行,是制作Excel自定义函数、Office菜单和功能区按钮、添加常用辅助功能的常用载体。 在Excel、PPT中都可以编制加载宏文件,Word则可以通过模板文件进行加载。根据版本和程序的不同,加载宏的文件类型也稍有区别,在2003版本中,Excel的加载宏扩展名是xla、PP
用excelVBA批量生成word并保存到指定文件夹
用excelVBA批量生成word并保存到指定文件夹