VBA:将不同工作簿中的某些工作表合并到一个工作簿中

时间:2014-09-26 12:16:25

标签: excel vba worksheet

我遇到了一个我无法解决的问题。这是:

我想复制某些工作簿中包含的某些工作表,并将其全部粘贴到一个新工作簿中。

更具体地说,我有一个名为«Fonds»的文件夹,其中包含20个工作簿,每个工作簿具有相同的结构: 它们都被称为“01082014_FONDS”,01082014为每个工作簿更改,并且是一个月中的某一天。 在每个工作簿中,都有一个名为«Portfolio»的工作表和另一个名为«Disponibilités»的工作表。我想要复制这两个工作表(还有其他工作表,但我只想复制那些工作表)并将其粘贴到新工作簿中。

最后,我在一本工作簿中有40张,称为“投资组合1”,“Disponibilités1”,“投资组合2”,“Disponibilités2”......

任何人都可以帮我这个吗? 非常感谢你!

2 个答案:

答案 0 :(得分:1)

您需要在VBA中执行以下操作:

  1. 循环浏览文件夹Loop through files in a folder using VBA?
  2. 中的文件
  3. 查找“Fonds”一词是否在文件名中:Check if a string contains another string
  4. 打开您找到的工作簿:Set wb = Workbooks.open(filename)
  5. 遍历工作簿中的工作表:Loop through Excel Sheets
  6. 查找工作表名称中是否包含“投资组合”或“Disponibilités”字样:Check if a string contains another string
  7. 重命名找到的工作表:http://www.mrexcel.com/forum/excel-questions/72647-any-way-rename-sheet-visual-basic-applications.html
  8. 将工作表复制到当前工作簿:Copy an entire worksheet to a new worksheet in Excel 2010
  9. 关闭工作簿:wb.close SaveChanges:=false

答案 1 :(得分:0)

为了帮助你,这是第一点...

第一点:

功能s()

MyPath = "D:\FOLDER\TEST\*.xls"   ' Set the path.
MyName = Dir(MyPath)   ' Retrieve the first entry.
Do While MyName <> ""   ' Start the loop.
   Call MsgBox(MyName)
   MyName = Dir()   ' Get next entry.
Loop

结束功能