繁体   English   中英

VBA:Range.Copy 以复制列的一部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM