VBA从特定工作表中几个不同工作簿中复制数据,然后将数据粘贴到当前工作簿中的特定工作表

我对VBA很新,需要一些帮助来复制和粘贴不同的工作簿和循环表名。

我需要编写一个macros来复制100个工作簿(具有完全相同的格式和表名)中的数据,需要将两个名为“摘要”和“数据库”的工作表复制到当前工作簿的不同工作表中。 我已经在当前工作簿中设置了一个Control_Panel工作表,其名称是复制源文件的名称,我需要将其清空(或者删除没有复制源文件的工作表,这样更好)

Control_Panel工作表页面如下所示:

这是我的代码:

Option Explicit Sub CopyData() Dim Address As String Dim CopyAddress As String Dim CopyRef1 As String Dim CopyRef2 As String Dim PasteSheet As String Dim Sheet1 As String Dim Sheet2 As String Dim A As Worksheet Dim i As Integer For i = 8 To 107 Step 1 If IsEmpty(Cells(i, "D").Value) = False Then Sheet1 = "Summary" Sheet2 = "DB" Address = Cells(i, "D").Value PasteSheet = Cells(i, "B").Value CopyRef1 = "'" & Cells(4, "C") & "[& Address &]" & Sheet1 & "'!'" & Range("B6:DO20") A = Worksheets("Sheet" & PasteSheet).Activate A.Range("C6:DP20").PasteSpecial CopyRef2 = "'" & Cells(4, "C") & "[& Address &]" & Sheet2 & "'!'" & Range("B7:LK631").Copy ActiveWorkbook.Worksheets(PasteSheet).Range("B23:LK647").PasteSpecial End If Next i End Sub 

我不想在每次尝试复制数据时都打开复制源文件,而且似乎代码无法识别源文件的位置。 此外,我不知道当我试图将数据粘贴到每个工作表时“PasteSheet”名称被识别。

请帮助我find一种方法,可以从多个工作簿中复制名为“摘要”和“数据库”的两张数据,而不打开它们,并将数据粘贴到使用从单元格B8到B107的表格名称循环的不同工作表中。

非常感谢!

很难看出你正在尝试什么。 尝试命名您的工作簿和工作表,如下所示:

 Dim wb as workbook, dim ws as worksheet, Set wb = ThisWorkbook, Set ws = wb.Worksheets("thenameofyourworksheet") 

然后使用ws.cells(4, "C")等至less有一个错误,我可以看到你的代码:

你的两个variablesCopyRef1/2都包含Address项,这是(应该)实际上是一个variables。 所以你的" "是不正确的或不足的。

试试... & "[" & Address & "]"

专业提示:使用标志! 不要命名Addressvariables,将其命名为sAddress并标记您的types。