寻找基于标题名称复制和粘贴数据的mod

时间:2015-02-21 18:12:23

标签: excel-vba header copy vba excel

我发现Alex P的代码根据标题值将列数据从一个工作表复制并粘贴到另一个工作表。我还找到了将粘贴偏移到起始单元格和行的方法。

现在我需要更多改进。粘贴的数据粘贴到我想要的地方,但我只需要过去的值,因为例程粘贴所有格式并破坏所有格式。 我还想使用它来复制和粘贴打开第二个打开的工作簿中的值,但这可以在以后完成。这是我正在使用的代码。从这篇文章: Copy data from one worksheet to another based on column

Sub CopyHeaders()
Dim header As Range, headers As Range
Set headers = Worksheets("ws1").Range("A1:Z1")

For Each header In headers
    If GetHeaderColumn(header.Value) > 0 Then
        Range(header.Offset(1, 0), header.End(xlDown)).Copy Destination:=Worksheets("ws2").Cells(2, GetHeaderColumn(header.Value))
    End If
Next
End Sub

Function GetHeaderColumn(header As String) As Integer
Dim headers As Range
Set headers = Worksheets("ws2").Range("A1:Z1")
GetHeaderColumn = IIf(IsNumeric(Application.Match(header, headers, 0)), Application.Match(header, headers, 0), 0)
End Function

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以使用xlPasteValues

由此:

Range(header.Offset(1, 0), header.End(xlDown)).Copy Destination:=Worksheets("ws2").Cells(2, GetHeaderColumn(header.Value))

对此:

Range(header.Offset(1, 0), header.End(xlDown)).Copy
Worksheets("ws2").Cells(2, GetHeaderColumn(header.Value)).PasteSpecial xlPasteValues