excel vba 打开文件名中包含指定字符的文件并拷贝信息到汇总表上
想求助一下各位excelVBA达人一个问题:有三个excel文件<文件1>EURO_20150328.xls<文件2>JPYEN_20150328.xls<文件3>MAI...
想求助一下各位excel VBA达人一个问题:有三个excel文件
<文件1> EURO_20150328.xls
<文件2> JPYEN_20150328.xls
<文件3> MAIN.xls
目标:想要在三个文件都打开的情况下,通过宏按钮将<文件1>和<文件2>的 <sheet1>和<sheet2> 分别拷贝到<文件3>的sheet1和sheet2里。
遇到的难题:这两个文件每天会存在当天日期的文件夹下,且由于文件1和文件2文件名中都会包含当天的日期,文件名称每天都是会变化的,宏代码里写的文件1和文件2的文件名是一个变量无法固定。请问有什么办法通过文件名中固定的字符来区分文件,并粘贴到汇总文件里。
提前谢谢各位了。烦请达人快来啊啊啊~ 展开
<文件1> EURO_20150328.xls
<文件2> JPYEN_20150328.xls
<文件3> MAIN.xls
目标:想要在三个文件都打开的情况下,通过宏按钮将<文件1>和<文件2>的 <sheet1>和<sheet2> 分别拷贝到<文件3>的sheet1和sheet2里。
遇到的难题:这两个文件每天会存在当天日期的文件夹下,且由于文件1和文件2文件名中都会包含当天的日期,文件名称每天都是会变化的,宏代码里写的文件1和文件2的文件名是一个变量无法固定。请问有什么办法通过文件名中固定的字符来区分文件,并粘贴到汇总文件里。
提前谢谢各位了。烦请达人快来啊啊啊~ 展开
3个回答
2015-08-24 · 知道合伙人软件行家
关注
展开全部
可以在Excel表格中用下面的VBA程序实现:
Sub Test() '打开文件名中包含指定字符的文件并拷贝信息到汇总表上
Dim f$
Dim n&
Mypath = ThisWorkbook.Path & "\"
f = Dir(Mypath & "*.xls*")
Do While f > " "
if instr(f,"XXX")>0 then
n = n + 1
Workbooks.Open Mypath & f
Set c = ActiveWorkbook
arr=Range("A1:G1")
c.Close
Cells(n, 1).resze(1,Ubound(arr,2)) =arr
end if
f = Dir
Loop
End Sub
Sub Test() '打开文件名中包含指定字符的文件并拷贝信息到汇总表上
Dim f$
Dim n&
Mypath = ThisWorkbook.Path & "\"
f = Dir(Mypath & "*.xls*")
Do While f > " "
if instr(f,"XXX")>0 then
n = n + 1
Workbooks.Open Mypath & f
Set c = ActiveWorkbook
arr=Range("A1:G1")
c.Close
Cells(n, 1).resze(1,Ubound(arr,2)) =arr
end if
f = Dir
Loop
End Sub
展开全部
根据当前日期查找应该不难吧
"EURO_" & Format(Date, "yyyymmdd") & ".xls"就是第一个文件名
"JPYEN_" & Format(Date, "yyyymmdd") & ".xls"就是第二个文件名
文件名有了,剩下的就简单多了,如果还不明白的话,联系我,Q 三一四零八八五九五
"EURO_" & Format(Date, "yyyymmdd") & ".xls"就是第一个文件名
"JPYEN_" & Format(Date, "yyyymmdd") & ".xls"就是第二个文件名
文件名有了,剩下的就简单多了,如果还不明白的话,联系我,Q 三一四零八八五九五
追问
您写的这个过程我倒是可以明白关键是怎么用代码打开相应的文件呢?以前是workbook("book1").activate 但现在把变化的文件名写在引号里就会报错…有没有什么方法解决啊
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub test()
Dim firstWorkbookpath As String
Dim secondWorkbookpath As String
firstWorkbookpath = ThisWorkbook.Path & "\" & Format(Now(), "yyyymmdd") & "\" & "EURO_" & Format(Now(), "yyyymmdd")
secondWorkbookpath = ThisWorkbook.Path & "\" & Format(Now(), "yyyymmdd") & "\" & "JPYEN_" & Format(Now(), "yyyymmdd")
Workbooks.Open (firstWorkbookpath)
'复制操作
Workbooks.Open (secondWorkbookpath)
'复制操作
End Sub
Dim firstWorkbookpath As String
Dim secondWorkbookpath As String
firstWorkbookpath = ThisWorkbook.Path & "\" & Format(Now(), "yyyymmdd") & "\" & "EURO_" & Format(Now(), "yyyymmdd")
secondWorkbookpath = ThisWorkbook.Path & "\" & Format(Now(), "yyyymmdd") & "\" & "JPYEN_" & Format(Now(), "yyyymmdd")
Workbooks.Open (firstWorkbookpath)
'复制操作
Workbooks.Open (secondWorkbookpath)
'复制操作
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询