簡體   English   中英

VBA將單元格范圍匹配到工作表名稱,並將其復制/粘貼到相應的工作表

[英]VBA Match Cell Range to Worksheet Name and copy/paste to respective worksheet

我正在嘗試編寫一個與工作表名稱中的單元格匹配的宏,然后從該工作表中提取數據,然后將其復制到具有初始工作表的下一列中。 這是我到目前為止的內容:

Sub example() 

 Dim wkSht As Worksheet

  For Each wkSht In Sheets

    For Each Cell In Sheets("Reporting").Range("B2:B200")

        If Cell.Value = wkSht.Name Then

            On Error Resume Next

            wkSht.Range("D15").Copy Destination:=Sheets("Reporting").Range("c2:c36")

        End If

    Next Cell

 Next wkSht

End Sub

我想對整個專欄都這樣做,但是我不知道在下一專欄中復制它的代碼。 基本上,它將使Cell (B2)與工作表標簽名稱匹配,然后從相應標簽中的同一單元格中提取,然后復制到下一column (C2) 我會為b3b4b5直到b200 謝謝!

我想我已經理解了你的問題。 在將數據復制到新列中時,需要一個輔助變量來增加。

碼,

Sub example()

  Dim wkSht As Worksheet
  Dim i As Long

    i = 3
    For Each wkSht In Sheets

        For Each Cell In Sheets("Reporting").Range("B2:B200")

            If Cell = wkSht.Name Then

                On Error Resume Next
                Sheets("Reporting").Cells(2, i).Resize(35).Value = wkSht.Range("D15").Value
                i = i + 1

            End If

        Next Cell

    Next wkSht

End Sub

使用long變量i將允許您存儲下一個可用列的位置,以將數據輸入其中。

您可以使用Offset()來指定相對於ColB中的單元格具有位置的單元格:

Sub example() 

 Dim wkSht As Worksheet

  For Each wkSht In Sheets

    For Each Cell In Sheets("Reporting").Range("B2:B200")

        If Cell.Value = wkSht.Name Then

            wkSht.Range("D15").Copy Destination:=Cell.Offset(0,1)

        End If

    Next Cell

 Next wkSht

End Sub

暫無
暫無

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

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