
在文件夹中所有文件上运行宏,或者在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.在当前工作簿路径中打开“选择文件”对话框,要求选择一个用于存储所有文件的文件夹。
excel图表制作:给多个数据系列添加趋势线
图表中有多个散点图,如何创建图表中这些数据的趋势线呢?如下图1所示,使用上半部分所示的数据,绘制下半部分所示的散点图。 图1 下面,我们需要向该图表中添加一个系列,该系列使用了绘制散点图的所有数据。详细操作步骤如下。 步骤1:在图表中单击右键,在快捷菜单中选择“选择数据”命令,如下图2所示。 图2 步骤2:在
2.打开一个单独的Excel进程(应用程序),然后逐个打开每个文件。
3.使用要在每个打开的工作簿上运行的代码替换“在这里放置你的代码”部分。
4.每个打开的工作簿在关闭时不会保存所作的修改。
在子文件夹内所有文件中运行宏
当想在文件夹中所有Excel文件上运行宏时,其中的一种情况是遍历所有子文件夹来运行宏。下面的内容与前述内容几乎相同,但是请注意声明了一个全局变量fileCollection,这将首先用于存储子文件夹中标识的所有文件,并且仅用于在此VBA集合中存储的文件上运行所有宏之后。
excel图表制作:给多个数据系列添加趋势线的加载宏
我们手工给多个散点图系列添加了一条趋势线,如下图 1 所示。 图 1 在图表中,最开始有 3 个数据系列,其公式分别为: =系列(Sheet1!$ C $ 2,Sheet1!$ B $ 3:$ B $ 11,Sheet1!$ C $ 3:$ C $ 11,1) =系列(Sheet1!$ E $ 2,Sheet1