[英]Looking for a mod to Copy and paste data based on Header name
我发现了Alex P的代码,可以根据标题值将列数据从一张纸复制并粘贴到另一张纸。 我还找到了将粘贴偏移到起始单元格和行的方法。
现在,我需要进一步完善。 粘贴的数据会粘贴到我想要的位置,但是我只需要粘贴值,因为例程会全部粘贴并破坏所有格式。 我也想用它从第二本打开的工作簿中复制和粘贴值,但是可以稍后完成。 这是我正在使用的代码。 在这篇文章中: 基于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
任何帮助,将不胜感激。
您可以使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.