乔山办公网我们一直在努力
您的位置:乔山办公网 > office365 > 如何对N个excel文件,批量执行同一个宏

如何对N个excel文件,批量执行同一个宏

作者:乔山办公网日期:

返回目录:office365


软件版本:Office2007

举例说明如下:

1.Alt+F11,输入代码如下:

代码解释:先查找当前文件夹下所有的xlsx文件,并通过循环依次打开文件

然后对当前激活状态的Excel文件执行宏命令(此处是给A1单元格赋值)

保存当前Excel文件,并关闭

继续打开下一个,重复上述操作。

2.F5执行代码:

3.这样,打开当前文件夹内的所有Excel文件,就都执行了赋值的宏命令:



N个excel文件在同一路径下,可以用Dir+Do Loop遍历文件,逐个文件打开,Call Macro1即可。

下面是简要的代码,根据实际情况修改一下。

    myFile = Dir(myPath & "*.xls")
    Do While myFile <> ""
      If myFile <> ThisWorkbook.Name Then
          Workbooks.Open(myPath & myFile)
          Call Marco1
          Workbooks(myFile).Close
      myFile = Dir
    Loop

5.XSL,右键sheet1——查看代码——粘贴代码——运行代码

Sub mysub()
Dim ShApp As Object, mysheet As Object
Dim TF As Boolean, i As Integer
Dim aTable As Object, n As Integer
On Error Resume Next
n = 0
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "请选定要处理的excel文档"
.Filters.Add "excel文档", "*.xls" '暂定扩展名为xls的excel文档
.AllowMultiSelect = True
If .Show <> -1 Then Exit Sub
Set ShApp = GetObject(, "Excel.Application")
If Err <> 0 Then
TF = True
Set ShApp = CreateObject("Excel.Application")
End If
Application.ScreenUpdating = False
For i = 1 To .SelectedItems.Count
Set mysheet = ShApp.Workbooks.Open(.SelectedItems(i))
With mysheet.Sheets(1)
.[a8].copy [a65536].end(xlup).offset(1)
End With
n = n + 1
mysheet.Close True
Next i
End With
If TF = True Then ShApp.Quit
Set ShApp = Nothing
MsgBox "处理完毕,共处理了e69da5e6ba907a64363" & n & "个excel文档。"
Application.ScreenUpdating = True
End Sub

你的宏放在了那个下边?是放到了“模块”下边还是“工作表事”zd件下边?
如果是“模块”下边那你同一个文件里所有的表都可以使用,只要选择相应的表格去运行宏即可
如果是“工作表事件”下那只有与之相对的工作表可以使用,如果你想让全部的工作表都用这个,那你就放到“工作薄事件”下即可即:VBA编辑器中左侧“工程资源管理器”窗口中的“ThisWorkbook”下边

相关阅读

  • 如何对N个excel文件,批量执行同一个宏

  • 乔山办公网office365
  • 软件版本:Office2007举例说明如下:1.Alt+F11,输入代码如抄下:代码解释:先查找当前文件夹下所有的百xlsx文件,并通过循环依次打开文件然后对当前激活状态的Excel文件执行宏命令(此
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网