我发现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
任何帮助都将不胜感激。
答案 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