寻找一个MOD来复制和粘贴基于标题名称的数据 [英] Looking for a mod to Copy and paste data based on Header name

查看:162
本文介绍了寻找一个MOD来复制和粘贴基于标题名称的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



现在我需要更多的改进。粘贴的数据粘贴在我想要的位置,但我需要仅在例程粘贴并破坏所有格式时才过滤值。
我也想用它来复制和粘贴打开的第二个打开的工作簿中的值,但以后可以完成。这是我正在使用的代码。从这篇文章:
从一个复制数据工作表到另一个基于列

  Sub副标题()
Dim header As Range,headers As范围
设置标题=工作表(ws1)。范围(A1:Z1)

对于每个标题在标题
中如果GetHeaderColumn(header.Value)> 0然后
Range(header.Offset(1,0),header.End(xlDown))。复制目标:= Worksheets(ws2)。Cells(2,GetHeaderColumn(header.Value))
End If
Next
End Sub

函数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



由此可见:

>

 范围(header.Offset(1,0),header.End(xlDown))。复制目标:= Worksheets(ws2) .Cells(2,GetHeaderColumn(header.Value))

至此:

 范围(header.Offset(1,0),header.End(xlDown))。复制
工作表(ws2)。 (2,GetHeaderColumn(header.Value))。PasteSpecial xlP asteValues


I found Alex P's code to copy and paste column data from one sheet to another based on header values. I also found the way to offset the paste to the start cell and row.

Now I need a bit more refinement. The pasted data pastes where I want but I need to past values only as the routine pastes all and destroys all formatting. I would also like to use this to copy and paste values from an open a second open workbook but that can be accomplished later. Here is the code I am using. From this post: 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

Any help would be appreciated.

解决方案

You could use xlPasteValues

From this:

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

To this:

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

这篇关于寻找一个MOD来复制和粘贴基于标题名称的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆