根据列标题匹配将特定列数据USING BUTTON从Book1复制到Book2

时间:2016-03-06 09:43:18

标签: excel excel-vba macros vba

在Excel中,我想根据列标题匹配将SPECIFIC列数据从Book1复制到Book2。 Book1和Book2具有相同的标题。我需要在Book1的sheet2中使用单个按钮来执行此复制宏或VBscript。

另外,在Book2中,我在row1中有一些数据列。应根据从Book1复制的行数据,在所有行中自动填充此数据(相同数据)。

1 个答案:

答案 0 :(得分:0)

我尝试了下面这个网站上的代码。它工作正常。现在我需要问题的第二部分。

Sub CopyHeaders()
Dim header As Range, headers As Range
Set headers = Workbooks("Book1.xlsm").Worksheets("sheet1").Range("A1:Z1")

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

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