【发布时间】:2018-09-12 00:57:06
【问题描述】:
我需要 Excel 的 VBA 代码:将由空工作簿中的按钮激活,循环打开工作簿,仅从工作簿复制名为“特定工作表名称”的工作表并将其粘贴到按钮激活器工作簿中的新工作表中。所以想法是它将来自不同工作簿的许多工作表组合成一个工作簿。我试过这个:
Sub workbookFetcher()
Dim book As Workbook, sheet, wsNew, wsCurr As Worksheet
Set wsCurr = ActiveSheet
For Each book In Workbooks
For Each sheet In book.Worksheets
If sheet.Name = "COOLING_RAW" Then
Set wsNew = Sheets.Add(After:=wsCurr)
book.Worksheets("COOLING_RAW").Copy
Set wsNew = book.Worksheets("COOLING_RAW")
End If
Next sheet
Next book
End Sub
它有点工作,但它将所有复制的工作表粘贴到新工作簿。这不是我想要的,我希望将它们粘贴到同一个工作簿中。
【问题讨论】:
-
两个不同的问题需要作为两个单独的问题发布...但只有在您搜索后 Google 和此网站才能获得类似问题的现有答案问题。这些都是非常常见的任务。如果您遇到特定的问题,您需要包含您的代码以及示例数据、您尝试过的具体内容以及一些背景信息。请参阅“minimal reproducible example”和“How to Ask”。
-
编辑为一个问题。我从互联网上找到的只是将数据粘贴到新工作簿的东西。
-
您正在添加一个新工作表,然后将工作表设置为等于该工作表。我认为你真正想做的是
book.Worksheets("COOLING_RAW").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)或类似的东西。根本不需要Set wsNew的东西。