匹配列编码
Sheet2中=你原来的报头(只需要头 - 将它放到第1行)
工作表Sheet1 =您的数据标题一起,但头是不是在其中可以有更多的同步或者更少,但是您希望根据表单中存在的标题获取数据2
现在将您的数据放入sheet2下面(第2行),该数据表已存在于sheet2中,并运行以下代码并显示数据根据所需的标题。
Sub Rahul()
Dim Orig_Range As Range
Dim New_Range As Range
Dim ToMove As Range
Dim RowOld, RowNew As Long
Dim ColOld, ColNew As Long
Dim WSD As Worksheet
Dim Cname As String
Set WSD = ActiveSheet
ColOld = WSD.Cells(1, Application.Columns.Count).End(xlToLeft).Column
ColNew = WSD.Cells(2, Application.Columns.Count).End(xlToLeft).Column
RowNew = WSD.Cells(Application.Rows.Count, 1).End(xlUp).Row
RowOld = 1
Set Orig_Range = Range(WSD.Cells(1, 1), WSD.Cells(1, ColOld))
For i = 1 To ColOld
Set New_Range = Range(WSD.Cells(2, 1), WSD.Cells(2, ColNew))
Cname = Orig_Range.Cells(RowOld, i).Value
Set ToMove = New_Range.Find(what:=Cname, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, MatchCase:=True)
If ToMove Is Nothing Then
New_Range.Cells(1, i).Resize(RowNew, 1).Select
Selection.Insert shift:=xlToRight
ElseIf Not ToMove.Column = i Then
ToMove.Resize(RowNew, 1).Select
Selection.Cut
New_Range.Cells(1, i).Select
Selection.Insert shift:=xlToRight
End If
Next i
End Sub
** 2件事:**'1)'你告诉我们你想要什么,但你会向我们展示你是如何试图得到你想要的得到更好的结果,但都失败了(即 - 你写的vba代码)。 '2)'您可能不需要vba代码,因为以写入方式编写的某些查找公式可能会为您完成此操作。 – 2012-08-09 20:05:52