我有一个VBA程序需要对不同路径下的多个excel文件中都运行一次,如何自动实现。

我有一个VBA程序需要对不同路径下的多个excel文件中都运行一次,如何自动实现。比如:C:\DocumentsandSettings\桌面\汇总\1\1.xlsxC:\... 我有一个VBA程序需要对不同路径下的多个excel文件中都运行一次,如何自动实现。
比如:
C:\Documents and Settings\桌面\汇总\1\1.xlsx
C:\Documents and Settings\桌面\汇总\5\3.xlsx
C:\Documents and Settings\桌面\汇总\11\9.xlsx
等几十个excel文件,需要执行程序
Sub 文件()
....................
End Sub
我需要在每个路径下的文件执行一次Sub 文件().............End Sub,但sub程序最好只写一次,不然excel宏会提示代码量太大无法运行。
展开
 我来答
阳光上的桥
2013-04-17 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
把这些文件的清单放在工作表里面,例如放在A列,新写一个宏,例如:
sub xxx()
Set fs = CreateObject("Scripting.FileSystemObject")
'开始打开所有文件进行处理
for k=1 to 10

fName = Cells(k, 1)
If Not fs.FileExists(fName) Then '如果文件存在
MsgBox "文件(" & fName & ")不存在!"
Exit Sub
End If
Cells(k, 2) = "打开文件..."
Workbooks.Open Filename:=fName, ReadOnly:=True
call 文件'调用你的宏

ActiveWorkbook.Close SaveChanges:=False

next k
end sub
追问
我的宏单独可以运行,但是把这段代码放到我代码的上面,形式如:
sub xxx()
end sub
sub 文件()
我的代码
end sub
结果显示下标越界,是不是因为我的宏中运行的时候要输入变量导致的?
Cells(k, 2) = "打开文件..." 这句是什么意思啊?是放我的文件的完成路径名吗?

我新建的工作表A列中只写文件名还是写完整路径加文件名。
追答
要使用完整的路径名称,Cells(k, 1)是文件名,就是A列 ,Cells(k, 2) = "打开文件..."是B列显示程序工作过程,执行完毕后还可以Cells(k, 2) = "执行成功。"

你的宏执行出错的时候,要看错误语句和错误代码,写得不兼容的地方需要修改。
zhaowei266
2013-04-17 · TA获得超过151个赞
知道小有建树答主
回答量:251
采纳率:100%
帮助的人:104万
展开全部
首先你不要将文件的路径写死,可以按照你自己的意愿打开所要执行的文件,然后直接调用你所说的Sub 文件().............End Sub,这样就可以了啊,这样Sub程序只需要写一次就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尹水若寒
2013-04-17 · TA获得超过292个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:263万
展开全部
用FSO循环文件夹及子文件夹,手机没办法帮你写,提供思路而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式