体验零代码搭建

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

网友投稿  ·  2023-11-28 18:11  ·  行业资讯  ·  阅读 2046


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

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

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

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

代码如下:

‘本程序来自于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集合中存储的文件上运行所有宏之后。


使用Windows命令合并CSV文件 << 上一篇
2023-11-28 18:11
excel图表制作:给多个数据系列添加趋势线
2023-11-28 18:11
下一篇 >>

相关推荐