![](/img/trans.png)
[英]VBA Match Cell Range to Worksheet Name and copy/paste to respective worksheet
[英]Excel VBA How to match WorkSheet name with Cell value, then Copy and Paste a Range of Cells
当“目标”工作簿的顶部单元格与工作表的名称匹配时,我只是试图将值从一个工作簿的值复制并粘贴到另一个工作簿。
但是在大多数情况下,它给我错误1004。 有任何想法吗?
Sub Cycle()
Dim ws As Worksheet
Dim y As Integer
For Each ws In ThisWorkbook.Sheets
ActiveSheet.Name = Worksheets("Target").Cells(1, y)
Worksheets("Target").Range(Cells(2, y), Cells(24, y)).Copy
Selection.Copy
ActiveSheet.Range("e3").Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
y = y + 1
Next ws
End Sub
我不确定我是否确切了解您想要什么,但是可以尝试一下:
Sub Cycle()
Dim ws As Worksheet
Dim wsTarg As Worksheet: Set wsTarg = Worksheets("Target")
Dim y As Integer
For Each ws In ThisWorkbook.Sheets
y = 1
While (wsTarg.Cells(1, y) <> vbNullString)
If ws.Name = wsTarg.Cells(1, y) Then
wsTarg.Range(wsTarg.Cells(3, y), wsTarg.Cells(25, y)).Value = _
ws.Range(ws.Cells(1, 1), ws.Cells(23, 1)).Value
End If
y = y + 1
Wend
Next ws
End Sub
这不是最好的方法(我们可以优化以避免验证已复制的列,并且不验证目标电子表格),但是它将查找您的所有工作表并与Target第一行中的所有单元格进行比较片。 如果工作表的名称与单元格名称完全相同,则会将第一列(单元格1至23)复制到目标工作表中的单元格3至25上。
我希望这有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.