我想将一列从一个工作表(“ Data1”)复制到另一工作表(“ Calc”)。然后,如果该列标题与“ Data1”表中的列相同,则我想从另一表(“ Data2”)中复制另一列,并将其粘贴到第二列“ Calc”表中。
我想将其循环放置,以便将“ Data1”表中的所有列和“ Data2”表中的相应列复制到“ Calc”表中。
Data1表看起来像这样:
Data2工作表如下:
我希望Calc工作表看起来像这样:
我对VBA还是很陌生,因此感谢您的帮助。
答案 0 :(得分:0)
这将清除Calc工作表,然后检查Data1中的列数,并仅在它们匹配时从Data1和Data2复制列。
Sub UpdateCalcSheet()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet
Dim NumCols As Long
Dim t As Long
Dim i As Long
Set ws1 = Sheets("Data1")
Set ws2 = Sheets("Data2")
Set ws3 = Sheets("Calc")
ws3.Cells.ClearContents
NumCols = ws1.Cells(1, Columns.Count).End(xlToLeft).Column
t = 1
For i = 1 To NumCols
Set IsCol = ws2.Rows(1).Find(ws1.Cells(1, i))
If Not IsCol Is Nothing Then
ws1.Columns(i).Copy ws3.Columns(t)
t = t + 1
ws2.Columns(ws2.Rows(1).Find(ws1.Cells(1, i)).Column).Copy ws3.Columns(t)
t = t + 1
End If
Next i
End Sub