Sub CollectData()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Application.DisplayAlerts = False
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Open("Path")
Set ws1 = wb1.Sheets("Jan")
For Each ws2 In wb2.Sheets
If Len(ws2.Name) > 0 Then
ws2.Range("A2:G50").Copy Destination:=ws1.Range("A2:G50")
End If
Next ws2
Application.DisplayAlerts = True
wb2.Close (savechanges = True)
谢谢,问候
我也是一个初学者,我在我的平板电脑上打字,所以我不能测试您的代码,但看起来您总是粘贴到相同的范围,从而覆盖了循环中以前的粘贴。您的目标范围需要是动态的,才能粘贴到下一个空范围中,以避免覆盖。
更新:
我不得不回到这个问题上来,因为我假设您每次运行循环时都在复制以前的粘贴。我的代码可能有点粗糙,但正如我所说的,我自己仍然在学习基础知识。更新工作簿中的“路径”。打开行并尝试一下。应该对你有用。
Sub CollectData()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim NextRow As Long
Set wb1 = ThisWorkbook
Set ws1 = wb1.Sheets("Jan")
Application.DisplayAlerts = False
Set wb2 = Workbooks.Open("Path")
For Each ws2 In wb2.Sheets
If Len(ws2.Name) > 0 Then
NextRow = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1
ws2.Range("A2:G50").Copy ws1.Range("A" & NextRow)
End If
Next ws2
Application.DisplayAlerts = True
wb2.Close True
End Sub
试图从当前工作簿“Create Report.xlsm”中复制工作表名称“Headings Explantions”,该工作簿打开到我要求打开的工作簿中,我得到了下标超出范围的错误
我正试图将所有工作表(7张)从workbook1(wb1)复制到WB2。wb1包含命令按钮,但我不希望它们出现在我的新工作簿中。我正在使用循环将单个工作表从一个工作簿复制到另一个工作簿。但是复制到第二张时出错了。我使用的代码如下:- 循环第一次成功运行,但对于i=2,代码给出错误
我需要一个宏,它可以根据我选择的单元格从我所在的工作簿中复制整行。我已经可以这样做了,使用以下方法: 但是,我需要它将其(格式化和全部)粘贴到关闭的工作簿的第一个空行(基于B列)。R: \dasboards\wo。xlsm公司
我写了下面的代码,并不断地看到。我试图克服这个问题,但似乎没有任何效果。我正试图从一个工作簿复制整个工作表,并将其粘贴到另一个工作簿中:
我对宏是新手,需要帮助。我在一个文件夹中有几个工作簿,每个工作簿有四个工作表。现在我想要一个mocro它复制数据从每个工作簿(工作表明智)和过去在我的主工作簿(工作表明智)意味着数据1应该被粘贴一个在另一个下面在我的主工作簿在工作表1和工作表2分别。*工作簿名称可以是文件夹中的任何东西。有人能帮我完成整个代码吗?我有宏从一张表到我分配的表的数据,但它复制粘贴数据从打开的表,而不是按表名明智的。有人
我在工作簿中的工作表上有一个按钮,工作簿中有一个数据透视表,名为“保修模板.xlsm”。我希望该按钮复制从A5开始的第一列数据,并将该列粘贴到另一个名为“QA Matrix Template.xlsm”的工作簿中。我希望复制的数据在列的最后一个空白行结束,我希望粘贴数据的范围也粘贴在从D12开始的第一个空白行上。 我得到下标错误:'1004',我不知道为什么。它与我的&变量有关。如果我设置静态范围