首页 文章

按列名复制列

提问于
浏览
0

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

Range("P").Value = 15 .

我是excel和VBA的新手 . TIA

1 回答

  • 0

    我并不完全确定你究竟想要做什么,因为你的范围代码(“P”) . 值没有多大意义,因为你只定义了一半的单元格范围 . 但我最好的猜测是你试图根据表格的 Headers 复制整个列(如你所说,它是在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
    

    希望这对你来说是一个很好的开球点 .

相关问题