匹配列編碼
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