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

Excel VBA将多个不同工作簿中的数据复制到特定工作表中,然后将数据粘贴到当前工作簿中的特定工作表中,excel,copy-paste,vba,Excel,Copy Paste,Vba,我对VBA非常陌生,需要一些关于使用不同工作簿和循环工作表名称进行复制和粘贴的帮助 我需要写一个宏来从100本工作簿(格式和工作表名称完全相同)复制数据,需要从两张名为“Summary”和“DB”的工作表复制到当前工作簿的不同工作表。我在当前工作簿中设置了一个控制面板,其名称为复制源文件的名称,我需要将其转义为空(或者删除没有复制源文件的工作表,这样更好) 这是我的密码: Option Explicit Sub CopyData() Dim Address As Strin

我对VBA非常陌生,需要一些关于使用不同工作簿和循环工作表名称进行复制和粘贴的帮助

我需要写一个宏来从100本工作簿(格式和工作表名称完全相同)复制数据,需要从两张名为“Summary”和“DB”的工作表复制到当前工作簿的不同工作表。我在当前工作簿中设置了一个控制面板,其名称为复制源文件的名称,我需要将其转义为空(或者删除没有复制源文件的工作表,这样更好)

这是我的密码:

   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”名称

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


非常感谢你

很难看出你在尝试什么。尝试将工作簿和工作表命名为:

Dim wb as workbook, dim ws as worksheet,
Set wb = ThisWorkbook,
Set ws = wb.Worksheets("thenameofyourworksheet")
然后与
ws.cells(4,“C”)
等。我可以在您的代码中看到至少一个错误:

您的两个变量
CopyRef1/2
都包含
Address
术语,它实际上是(应该是)一个变量。因此,
的位置不正确或不充分

试试
…&“[”&地址&“]”


专业提示:使用旗帜!不要将变量命名为
地址
之类,将其命名为
sAddress
并标记您的类型

“代码似乎无法识别源文件的位置”是什么意思?每次运行宏时,我都可以看到它会复制活动工作表,而不是转到文件夹并复制源文件。因此,与其转到“C:\Users\Desktop\BBB.xlsb”从工作表“Summary”复制数据,不如转到“C:\Users\Desktop\BBB.xlsb”,它将保留在我当前的工作簿中,并从我所在的活动工作表中复制数据。请验证您的工作表/单元格。我无法理解您试图执行的操作。您是否打算用控制面板中的每个匹配项覆盖AAA.XLS中的整个B23:LK647范围?还是你在追加?你是什么意思,我的逃跑,那些是空白的?那些没有需要打开的文件?