首页officeexcel正文

如何在excel工作簿所有工作表中运行宏

强国说学习2022-08-21191excel图表制作excel常用函数excel数据透视表Excel教程

在文件夹中所有文件上运行宏,或者在Excel工作簿中所有工作表上运行宏,这可能是一种非常好的Excel自动化方案。例如处理类似的数据工作簿文件并想要提取数据或转换该工作簿。下面给出了适用这种情况的一些VBA程序,这些程序代码整理自analystcave.com,供有兴趣的朋友参考。

在文件夹内所有文件中运行宏

代码如下:

‘本程序来自于analystcave.comSub RunOnAllFilesInFolder()Dim folderName As StringDim eApp As Excel.ApplicationDim fileName As StringDim wb As WorkbookDim ws As WorksheetDim currWs As WorksheetDim currWb As WorkbookDim fDialog As ObjectSet fDialog =Application.FileDialog(msoFileDialogFolderPicker)Set currWb =ActiveWorkbookSet currWs = ActiveSheet‘选择存储所有文件的文件夹fDialog.Title = “选择文件夹”fDialog.InitialFileName =currWb.PathIf fDialog.Show = -1 ThenfolderName =fDialog.SelectedItems(1)End If‘创建一个单独的不可见的Excel处理进程Set eApp = NewExcel.ApplicationeApp.Visible = False‘搜索文件夹中的所有文件[使用你的格式例如*.xlsx来代替*.*]fileName = Dir(folderName& “\*.*”)Do While fileName<> “”‘更新状态栏来指示进度Application.StatusBar= “正在处理” & folderName & “\&; & fileNameSet wb =eApp.Workbooks.Open(folderName & “\&; & fileName)‘…‘在这里放置你的代码‘…wb.CloseSaveChanges:=False ‘关闭打开的工作簿Debug.Print “已处理 “& folderName & “\&; & fileNamefileName = Dir()LoopeApp.QuitSet eApp = Nothing‘清除状态栏并通知宏已完成Application.StatusBar =””MsgBox “在所有工作簿中都完成了宏执行”End Sub

这段代码完成下列操作:

1.在当前工作簿路径中打开“选择文件”对话框,要求选择一个用于存储所有文件的文件夹。

该篇文章内容来源于网络,由强国说-WPS之家(wps.qiangguoshuo.com)收集,希望能为广大朋友提供帮助。

2.打开一个单独的Excel进程(应用程序),然后逐个打开每个文件。

3.使用要在每个打开的工作簿上运行的代码替换“在这里放置你的代码”部分。

4.每个打开的工作簿在关闭时不会保存所作的修改。

在子文件夹内所有文件中运行宏

当想在文件夹中所有Excel文件上运行宏时,其中的一种情况是遍历所有子文件夹来运行宏。下面的内容与前述内容几乎相同,但是请注意声明了一个全局变量fileCollection,这将首先用于存储子文件夹中标识的所有文件,并且仅用于在此VBA集合中存储的文件上运行所有宏之后。

如想转载该文章请注明出处:强国说学习-qiangguoshuo.com
强国说学习

转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:https://www.qiangguoshuo.com/excel/19702.html