したがって、2枚のシートがあります。 1つは行1(Sheet1)のヘッダーでデータがいっぱいで、もう1つは行9(Sheet2)にヘッダーがあります。私は、特定のヘッダーでSheet1からデータをコピーし、対応するヘッダーでSheet2に配置する必要があります。たとえば、Sheet1のヘッダーが "bob"の場合、 "bob"で始まる列のすべてのデータをコピーし、Sheet2のハードコードされた列に配置します。VBA:Range.Copyで列の一部をコピーする
私のコードは現在、Sheet1のヘッダーをフィルタリングし、別のシートにコピーする必要があるコードを選択すると、の列全体をコピーして、列IのSheet2に貼り付けます。この列は常に同じですが、情報をI1ではなくI9に貼り付けることができます。私はいくつかの変更を助けたいくつかのコードをオンラインで見つけました。
しかし、私はペーストしようとすると列全体をコピーするとエラー1004が発生するため、これを行うことはできません。したがって、I1に貼り付けることしかできません。そうしないとオーバーフローが発生します。どのようにして、コピーメソッドを変更して、ヘッダー "ボブ"が塗りつぶされた列のセルだけがコピーされ、ペーストされるようにすることができますか?
コードは以下の通りです:
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
ありがとうございました!
ちょうどそれのデータとビットをコピーして、列全体をコピーしないでください。 – SJR