要执行的宏是Macro1。
这样哪里错了?
Marco1没有定义
Sub abc()
myFile = Dir("C:\123\" & "*.xls")
Do While myFile <> ""
If myFile <> ThisWorkbook.Name Then
Workbooks.Open (myPath & myFile)
Call Marco1
Workbooks(myFile).Close
myFile = Dir
Loop
End Sub
Sub Macro1()
End Sub
首先将宏(Macro1)写入记事本,保存在特定的位置;
然后在每个工作薄中都有一个相同的宏(如“插入并运行宏”),这个宏的作用在于,临时插入(添加)宏(Macro1),宏的内容调用记事本的内容,并运行这个刚插入的这个宏(Macro1)。
------------------------------
Sub a()
Dim myFile, myPath
myPath = "E:\Test\"
myFile = Dir("E:\Test\" & "*.xls")
Do While myFile <> ""
If myFile <> ThisWorkbook.Name Then
Workbooks.Open (myPath & myFile)
Set newmodule = Workbooks(myFile).VBProject.VBComponents.Add(1)
With ActiveWorkbook.VBProject.VBComponents(newmodule.Name).CodeModule
.InsertLines .CountOfLines + 1, _
"Sub abc()" & Chr(13) & "MsgBox ""Hello""" & Chr(13) & "End Sub"
End With
Application.Run myFile & "!" & "abc"
Workbooks(myFile).Close savechanges:=False
End If
myFile = Dir
Loop
End Sub
------------------
运行的前提是
N个excel文件在同一路径下,可以用Dir+Do Loop遍历文件,逐个文件打开,Call Macro1即可。
下面是简要的代码,根据实际情况修改一下。
myFile = Dir(myPath & "*.xls")我这样出错了。没有定义函数Marco1,还有目录格式对吗?
Sub abc()
myFile = Dir("C:\Users\Administrator\Desktop\123" & "*.xls")
……
End Sub
Sub Macro1()
.......
End Sub
mypath后面需要有\
myFile = Dir("C:\Users\Administrator\Desktop\123\" & "*.xls")
编译错误子函数(Macro1)没有定义
追答能将Macro1的内容发上来吗?只知道错误提示无法判断具体是什么原因。
追问你看问题补充吧,这里字数有限制
追答Macro1里面是空的啊,所以提示Macro1没有定义,Call需要有对象。
另外需要调整Workbook.Open,没有End If
Sub abc()还是有错,提示找不到文件,你自己试试
追答Sub abc()文件路径变量缺少了前面的部分,现在应该可以了。
复制这次的代码测试一下。
追问检测到无效的文件名。有些文件没执行宏,提示无效的文件名。
追答方便把数据发给我吗?最好包含出问题的文件,我在本地测试一下。
这样不太好判断。+Q 12526174
如何对N个excel文件,批量执行同一个宏
1.Alt+F11,输入代码如下:代码解释:先查找当前文件夹下所有的xlsx文件,并通过循环依次打开文件 然后对当前激活状态的Excel文件执行宏命令(此处是给A1单元格赋值)保存当前Excel文件,并关闭 继续打开下一个,重复上述操作。2.F5执行代码:3.这样,打开当前文件夹内的所有Excel文件,就都执行了赋值的宏...
如何对N个excel文件,批量执行同一个宏
首先将宏(Macro1)写入记事本,保存在特定的位置;然后在每个工作薄中都有一个相同的宏(如“插入并运行宏”),这个宏的作用在于,临时插入(添加)宏(Macro1),宏的内容调用记事本的内容,并运行这个刚插入的这个宏(Macro1)。--- Sub a() Dim myFile, myPath myPath = "E:\\Te...
如何批量对同一个文件夹内几百个EXCEL文件都同时执行这个宏命令?
Sub 批量清除工作表保护密码()Dim myPath$, myFile$, AK As Workbook, sh As Worksheet Application.ScreenUpdating = False myPath = ThisWorkbook.Path & "\\"myFile = Dir(myPath & "*.xls")Do While myFile <> ""If myFile <> ThisWorkbook.Name Then Set AK = Workbooks.Open(myPath ...
如何同宏批量处理同个文件夹的多个EXCEL,宏我已经录制好了,就是要...
If myFile <> ThisWorkbook.Name Then '如果我们这个宏文件在需要处理的文件夹之中,这个判断就会跳过下面的操作 Set WB = Workbooks.Open(myPath & myFile) '打开符合要求的文件 WB.Close 0 '不保存文件直接关闭 End If myFile = Dir '找寻下一个*.xls,或者xlsx文件 Loop Set WB = Nothing...
怎样对同一文件夹下所有EXCEL工作薄批量执行同样的操作?
'先新建一个excel带宏(VBA代码)的工作簿,把此代码复制到此工作簿的“模块”里 Dim strFilePath$ '定义工作簿所在的目录 Dim strFileName$ '定义文件名 Dim strGetDir '用于返回strfilepath 是否存在 Dim strTwkName$ '代码所在的工作簿的名称 Dim lngRowLast& '工作表最后一行...
Excel 怎么样批量修改多个EXCEL文件
excel批量更改表格数据,excel批量更改文字,excel更改多表数据
如何批量编辑多个excel文件
首先打开excel表格,你可能要处理一堆表格,如下:点击其中一张工作表,在视图页面,找到“宏”的命令符。点击【宏】,然后点击【录制宏】在【录制宏】界面,你可以为新建的宏命名,同时也可以为其设置快捷键,注意不要与office原有的快捷键冲突。小编一般命名为ctrl+n,然后点击确定。接下来,你所进行...
写一个宏,使一个excel表中的几个sheet能通过选取一定的内容生成一个新...
7、如果在一个Excel文件中含有多个工作表,如何将多个工作表一次设置成同样其方法是:选取“工具”菜单中的“宏”命令,执行“记录新宏”,记录好后
在一个文件中对所有EXCEL,大概有上千个工作簿,执行同样的录制宏并保存...
由于你没有具体的单元对应要求,我给出批量打开的框架给你,如果你不会用宏或者不知道怎么写每页要做的代码,可以HI我。Sub 批量打开()MyPath = "D:\\Excel Programe\\ABCD\\" '换为你自己保存EXCEL的文件夹 myfile = Dir(MyPath & "*.xls")Do While myfile <> "" And ActiveWorkbook.Name <...
对同一个文件下的多个EXCEL文件进行相同的操作
Sub 批量()Dim myFiles Dim i As Long, j As Long myFiles = Dir("C:\\Users\\Administrator\\Desktop\\1\\*.xlsx")'文件路径 On Error Resume Next Application.ScreenUpdating = True Application.DisplayAlerts = False Do While myFiles <> ""i = i + 1 Workbooks.Open Filename:="C:\\User...