一个VBA程序怎么处理多个excel 表格
针对某一个excel文件制作的VBA程序,怎么样让其处理多个格局相同的表格?我的excel文件是其他软件输出的多个数据表1.我想用VBA自动处理文件,因为我的文件比较多,...
针对某一个excel文件制作的VBA程序,怎么样让其处理多个格局相同的表格?
我的excel文件是其他软件输出的多个数据表
1.我想用VBA自动处理文件,因为我的文件比较多,不想把每个文件一一打开再添加代码进去。
就是用相同的代码处理一系列文件内的数据。
不过待处理的文件名我可以自己定义,因为其他软件输出数据文件的动作我可以用程序控制。
注意:是多个文件,即使用excel打开,也是多个.xls文件,而不是一个文件下的多个sheet
2. 我的待处理文件不是excel文档,是没有后缀的File类型,可以用excel打开。但是添加到其中的VBA代码无法直接用该格式保存。
3. 我想把一批文件处理的结果单独存放在一个文件中?那样我就可以不用打开所有文件再提取结果了。
希望大家能提供代码案例
提高悬赏分,希望高手指点。 展开
我的excel文件是其他软件输出的多个数据表
1.我想用VBA自动处理文件,因为我的文件比较多,不想把每个文件一一打开再添加代码进去。
就是用相同的代码处理一系列文件内的数据。
不过待处理的文件名我可以自己定义,因为其他软件输出数据文件的动作我可以用程序控制。
注意:是多个文件,即使用excel打开,也是多个.xls文件,而不是一个文件下的多个sheet
2. 我的待处理文件不是excel文档,是没有后缀的File类型,可以用excel打开。但是添加到其中的VBA代码无法直接用该格式保存。
3. 我想把一批文件处理的结果单独存放在一个文件中?那样我就可以不用打开所有文件再提取结果了。
希望大家能提供代码案例
提高悬赏分,希望高手指点。 展开
5个回答
展开全部
处理多个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
下面代码为打开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
展开全部
这个要看你是想让VBA自动处理还是用手动执行VBA了
如果是手动,很简单,将有VBA代码的EXCEL文件打开,然后将要处理的EXCEL文件打开,在要处理的EXCEL画面执行宏,选择宏名称,执行就可以了。宏名称前面会有VBA所在的EXCEL文件的文件名。
每个格局相同,要处理的EXCEL执行一次就可以了。
如果想要用VBA统一处理的话,涉及到文件名的问题,因为要用代码自动打开EXCEL,就要让程序知道要打开的文件名,还涉及到要处理的文件个数问题。如果你的多个数据表文件名每次都相同,个数都相同,这样简单,但我想一般情况下软件输出的多个数据表,文件名都会和日期、时间有关。
关于用VBA自动处理,如果你想知道,把问题补充一下,我再来修改我的答案。
如果是手动,很简单,将有VBA代码的EXCEL文件打开,然后将要处理的EXCEL文件打开,在要处理的EXCEL画面执行宏,选择宏名称,执行就可以了。宏名称前面会有VBA所在的EXCEL文件的文件名。
每个格局相同,要处理的EXCEL执行一次就可以了。
如果想要用VBA统一处理的话,涉及到文件名的问题,因为要用代码自动打开EXCEL,就要让程序知道要打开的文件名,还涉及到要处理的文件个数问题。如果你的多个数据表文件名每次都相同,个数都相同,这样简单,但我想一般情况下软件输出的多个数据表,文件名都会和日期、时间有关。
关于用VBA自动处理,如果你想知道,把问题补充一下,我再来修改我的答案。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-03-04
展开全部
你可以把你编写的VBA语句保存到个人宏工作簿,这样就可以用在其他的excel工作簿里面了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
dim i,RR
RR=worksheets.count
for i=1 to rr
......
next i
2. 你的文件应该可以导入到Excel,如果不行,可试验设扩展名为Txt格式。
3. 关于合并多表到一个表,请参见我写的一段代码
http://zhidao.baidu.com/question/140336199.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看我刚回答过的问题,和你要求的类型太相似了,你再把情况说清点,我修改一点代码就可以了。也可以用Hi联系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询