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

2024-12-17 07:22:43
推荐回答(5个)
回答1:

处理多个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

回答2:

这个要看你是想让VBA自动处理还是用手动执行VBA了

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

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

关于用VBA自动处理,如果你想知道,把问题补充一下,我再来修改我的答案。

回答3:

你可以把你编写的VBA语句保存到个人宏工作簿,这样就可以用在其他的excel工作簿里面了。

回答4:

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

回答5:

你看我刚回答过的问题,和你要求的类型太相似了,你再把情况说清点,我修改一点代码就可以了。也可以用Hi联系。