[英]Excel VBA How to match WorkSheet name with Cell value, then Copy and Paste a Range of Cells
[英]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)
。 我會為b3
, b4
, b5
直到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.