按列名复制列

时间:2017-08-31 11:47:39

标签: vba excel-vba excel

我有一张包含3张的工作簿。我想通过使用在A1,B1和C1中指定的列名称将一个列从sheet1复制到sheet3。我可以使用范围复制内容。但我找不到任何方法来复制使用列名如“名称”“年龄”等。我在某个网站上找到了以下代码,显示错误“1004”。对象'_Worksheet'的方法'Range'失败。

Range("P").Value = 15 .

我是excel和VBA的新手。 TIA

1 个答案:

答案 0 :(得分:0)

我不完全确定你到底想要做什么,因为你的范围代码(" P")。值没有多大意义,因为你只定义了一半的a细胞范围。但我最好的猜测是你试图根据表格的标题复制整个列(如你所说,它是在A1,B1和C1中分配的)?

如果是这种情况,则此快速宏循环遍历HeaderRange中定义的每个标头,如果它与您的查询匹配,则将其复制到sheet3中的单元格A1。

Sub CopyCol()
Dim HeaderRange As Range
Dim Query As String

Set HeaderRange = Worksheets("Sheet1").Range("A1:C1")
Query = "Name"

For Each hcell In HeaderRange ' Loop through each header cell
    If hcell.Value = Query Then ' If it matches your query then copy entire column
        Range(hcell.Address).EntireColumn.Copy _
        Destination:=Sheets("Sheet3").Range("A1")
    End If
Next hcell

End Sub

希望这对你来说是个不错的选择。

相关问题