【怎么在excel工作簿所有工作表中运行宏】在文件夹中所有文件上运行宏,或者在Excel工作簿中所有工作表上运行宏,这可能是一种非常好的Excel自动化方案 。例如处理类似的数据工作簿文件并想要提取数据或转换该工作簿 。下面给出了适用这种情况的一些VBA程序,这些程序代码整理自analystcave.com,供有兴趣的朋友参考 。
在文件夹内所有文件中运行宏
代码如下:
- ‘本程序来自于analystcave.com
- Sub RunOnAllFilesInFolder()
- Dim folderName As String
- Dim eApp As Excel.Application
- Dim fileName As String
- Dim wb As Workbook
- Dim ws As Worksheet
- Dim currWs As Worksheet
- Dim currWb As Workbook
- Dim fDialog As Object
- Set fDialog =Application.FileDialog(msoFileDialogFolderPicker)
- Set currWb =ActiveWorkbook
- Set currWs = ActiveSheet
- ‘选择存储所有文件的文件夹
- fDialog.Title = “选择文件夹”
- fDialog.InitialFileName =currWb.Path
- If fDialog.Show = -1 Then
- folderName =fDialog.SelectedItems(1)
- End If
- ‘创建一个单独的不可见的Excel处理进程
- Set eApp = NewExcel.Application
- eApp.Visible = False
- ‘搜索文件夹中的所有文件[使用你的格式例如*.xlsx来代替*.*]
- fileName = Dir(folderName& “\*.*”)
- Do While fileName<> “”
- ‘更新状态栏来指示进度
- Application.StatusBar= “正在处理” & folderName & “\” & fileName
- Set wb =eApp.Workbooks.Open(folderName & “\” & fileName)
- ‘…
- ‘在这里放置你的代码
- ‘…
- wb.CloseSaveChanges:=False ‘关闭打开的工作簿
- Debug.Print “已处理 “& folderName & “\” & fileName
- fileName = Dir()
- Loop
- eApp.Quit
- Set eApp = Nothing
- ‘清除状态栏并通知宏已完成
- Application.StatusBar =””
- MsgBox “在所有工作簿中都完成了宏执行”
- End Sub
1.在当前工作簿路径中打开“选择文件”对话框,要求选择一个用于存储所有文件的文件夹 。
2.打开一个单独的Excel进程(应用程序),然后逐个打开每个文件 。
3.使用要在每个打开的工作簿上运行的代码替换“在这里放置你的代码”部分 。
4.每个打开的工作簿在关闭时不会保存所作的修改 。
在子文件夹内所有文件中运行宏
当想在文件夹中所有Excel文件上运行宏时,其中的一种情况是遍历所有子文件夹来运行宏 。下面的内容与前述内容几乎相同,但是请注意声明了一个全局变量fileCollection,这将首先用于存储子文件夹中标识的所有文件,并且仅用于在此VBA集合中存储的文件上运行所有宏之后 。
推荐阅读
- excel图表制作:创建级联列表框
- excel图表制作:给多个数据系列添加趋势线的加载宏
- 京东种草官怎么当?入驻申请流程是什么?
- 秋季最受欢迎的Instagram景点列表
- 京东快递单号怎么查询到哪里了?有哪些方式?
- 《流光之城》免费在线观看完整版高清,求百度网盘资源
- 棉花被一拍打灰尘很多怎么办
- 螃蟹怎么看死活
- excel图表制作:绘制时间线图
- Excel工作表打印技巧