簡體   English   中英

VBA從特定工作表中的多個不同工作簿復制數據,然后將數據粘貼到當前工作簿中的特定工作表

[英]VBA Copy Data from several Different workbook in a specific worksheet and then paste the data to a specific sheet in current Workbook

我是VBA的新手,需要一些幫助來復制和粘貼不同的工作簿和循環表名稱。

我需要編寫一個宏來復制100個工作簿中的數據(具有完全相同的格式和工作表名稱),需要從兩個名為“Summary”和“DB”的工作表復制到我當前工作簿的不同工作表。 我在我當前的工作簿中設置了一個Control_Panel Sheet,其中包含復制源文件名稱的名稱,我需要將其轉義為空白(或者刪除沒有復制源文件的表單,這樣更好)

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”名稱。

請幫我找到一種方法,從多張工作簿中復制兩張名為“Summary”和“DB”的數據,而不打開它們,並將數據粘貼到不同的工作表,工作表名稱從Cell 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 term,它實際上是(應該)變量。 因此,放置您的" "是不正確的或不充分的。

試試... & "[" & Address & "]"

專業提示:使用標志! 不要名稱,如變量Address左右,將其命名sAddress和標志你的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM