[英]VBA: Range.Copy to Copy Part of Column
所以我有两张纸。 一个是第 1 行 (Sheet1) 中带有标题的完整数据,另一个是第 9 行 (Sheet2) 中的标题。 我需要从带有特定标题的 Sheet1 中复制数据,并将其放入带有相应标题的 Sheet2 中。 例如,如果 Sheet1 中的标题是“bob”,我想复制以“bob”为标题的列中的所有数据,并将其放在 Sheet2 中的硬编码列中。
我的代码当前过滤 Sheet1 中的标题,当它选择我需要复制到另一张工作表的标题时,它会复制整个列并将其粘贴到第一列的 Sheet2 中。此列将始终相同,但我会喜欢将信息粘贴到 I9 而不是 I1。 我在网上找到了一些有助于修改的代码。
但是,我不能这样做,因为在尝试粘贴时复制整个列会产生问题,错误 1004。所以我只能粘贴到 I1,否则会出现溢出。 如何更改我的复制方法,以便仅复制填充了标题“bob”的列中的单元格,然后粘贴?
代码如下:
Dim ws As Worksheet
Dim aCell As Range, Rng As Range
Dim col As Long, lRow As Long
Dim colName As String
Dim i As Integer
'activate temp worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Set res = ThisWorkbook.Sheets("Sheet2")
With ws
Set a = .Range("A1:ZZ1").Find(What:="bob", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False)
'if found
If Not a Is Nothing Then
'copy column
a.EntireColumn.Copy
'insert column at I9
Cells("I9").PasteSpecial Paste:=xlPasteValues
Else
MsgBox "Parameter (bob) not found in (Sheet1)"
End If
End With
谢谢!
尝试:
Dim ws As Worksheet
Dim aCell As Range, Rng As Range, a As Range`
Dim col As Long, lRow As Long
Dim colName As String
Dim i As Integer
'activate temp worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Set res = ThisWorkbook.Sheets("Sheet2")
With ws
Set a = .Range("A1:ZZ1").Find(What:="bob", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False)
'if found
If Not a Is Nothing Then
'copy column
lRow = .Cells(.Rows.Count, a.Column).End(xlUp).Row
.Range(.Cells(1, a.Column), .Cells(lRow, a.Column)).Copy
'insert column at I9
res.Range("I9").PasteSpecial Paste:=xlPasteValues
Else
MsgBox "Parameter (bob) not found in (Sheet1)"
End If
End With
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.