我尝试编写一个与工作表名称中的单元格匹配的宏,然后从该工作表中提取数据,然后使用初始工作表将其复制到下一列中。这就是我到目前为止所拥有的:
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
。谢谢!
答案 0 :(得分:0)
我想我已经理解了你的问题。在将数据复制到新列时,您需要一个辅助变量来增加。
代码,
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
将允许您存储下一个可用列的位置以输入数据。
答案 1 :(得分:0)
您可以使用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