一个VBA程序怎么处理多个excel 表格

针对某一个excel文件制作的VBA程序,怎么样让其处理多个格局相同的表格?
我的excel文件是其他软件输出的多个数据表
1.我想用VBA自动处理文件,因为我的文件比较多,不想把每个文件一一打开再添加代码进去。
就是用相同的代码处理一系列文件内的数据。
不过待处理的文件名我可以自己定义,因为其他软件输出数据文件的动作我可以用程序控制。
注意:是多个文件,即使用excel打开,也是多个.xls文件,而不是一个文件下的多个sheet
2. 我的待处理文件不是excel文档,是没有后缀的File类型,可以用excel打开。但是添加到其中的VBA代码无法直接用该格式保存。
3. 我想把一批文件处理的结果单独存放在一个文件中?那样我就可以不用打开所有文件再提取结果了。

希望大家能提供代码案例
提高悬赏分,希望高手指点。

处理多个Excel文件时,将文件依次打开,然后再利用代码处理数据即可
下面代码为打开Excel文件,并提取sheet1中的第一行数据到本表中:
Sub main()
f = Dir(ThisWorkbook.Path & "\*.xlsx")'打开制定文件夹中的所有Excel文件
Do While f <> ""
Workbooks.Open (ThisWorkbook.Path & "\" & f)'依次将文件打开
x = Range("A65536").End(3).Row'x为工作表中的最后一个非空行数
Workbooks(f).Sheets(1).Rows(1).Copy Range("A" & x + 1)'把搜索到的文件中的第一行数据,复制到本工作表中,最后一个非空行下面的一行中
Workbooks(f).Close'关闭打开的文件
f = Dir'将下一个文件名赋予f
Loop'继续循环
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-04
这个要看你是想让VBA自动处理还是用手动执行VBA了

如果是手动,很简单,将有VBA代码的EXCEL文件打开,然后将要处理的EXCEL文件打开,在要处理的EXCEL画面执行宏,选择宏名称,执行就可以了。宏名称前面会有VBA所在的EXCEL文件的文件名。
每个格局相同,要处理的EXCEL执行一次就可以了。

如果想要用VBA统一处理的话,涉及到文件名的问题,因为要用代码自动打开EXCEL,就要让程序知道要打开的文件名,还涉及到要处理的文件个数问题。如果你的多个数据表文件名每次都相同,个数都相同,这样简单,但我想一般情况下软件输出的多个数据表,文件名都会和日期、时间有关。

关于用VBA自动处理,如果你想知道,把问题补充一下,我再来修改我的答案。本回答被提问者采纳
第2个回答  2010-03-04
你可以把你编写的VBA语句保存到个人宏工作簿,这样就可以用在其他的excel工作簿里面了。
第3个回答  2010-03-05
1.处理多个表可用循环控制
dim i,RR
RR=worksheets.count
for i=1 to rr
......
next i

2. 你的文件应该可以导入到Excel,如果不行,可试验设扩展名为Txt格式。

3. 关于合并多表到一个表,请参见我写的一段代码
http://zhidao.baidu.com/question/140336199.html
第4个回答  2010-03-05
你看我刚回答过的问题,和你要求的类型太相似了,你再把情况说清点,我修改一点代码就可以了。也可以用Hi联系。
相似回答