针对某一个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
ä¸é¢ä»£ç 为æå¼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自动处理,如果你想知道,把问题补充一下,我再来修改我的答案。本回答被提问者采纳
如果是手动,很简单,将有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. 关于合并多表到一个表,请参见我写的一段代码
dim i,RR
RR=worksheets.count
for i=1 to rr
......
next i
2. 你的文件应该可以导入到Excel,如果不行,可试验设扩展名为Txt格式。
3. 关于合并多表到一个表,请参见我写的一段代码
第4个回答 2010-03-05
你看我刚回答过的问题,和你要求的类型太相似了,你再把情况说清点,我修改一点代码就可以了。也可以用Hi联系。