作者:乔山办公网日期:
返回目录: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”下边