@ninart 大神的第一种方法,重新发上来。
Sub headdata()
Dim Arr1, i, j
Application.ScreenUpdating = False
Arr1 = ActiveSheet.Range(ActiveSheet.Range("a2"), ActiveSheet.Range("a2").End(xlToRight).End(xlDown))
ActiveSheet.Range(ActiveSheet.Range("a2"), ActiveSheet.Range("a2").End(xlToRight).End(xlDown)).ClearContents
ActiveSheet.UsedRange.NumberFormatLocal = "@"
For i = 1 To ActiveSheet.Range("a1").End(xlToRight).Column
For j = 1 To UBound(Arr1, 2)
If ActiveSheet.Cells(1, i) = Arr1(1, j) Then
ActiveSheet.Cells(1, i).Resize(UBound(Arr1), 1) = Application.Index(Arr1, , j)
Exit For
End If
Next j
Next i
Range("C2").Select
Application.ScreenUpdating = True
End Sub
Sub headdata()
Dim Arr1, i, j
Application.ScreenUpdating = False
Arr1 = ActiveSheet.Range(ActiveSheet.Range("a2"), ActiveSheet.Range("a2").End(xlToRight).End(xlDown))
ActiveSheet.Range(ActiveSheet.Range("a2"), ActiveSheet.Range("a2").End(xlToRight).End(xlDown)).ClearContents
ActiveSheet.UsedRange.NumberFormatLocal = "@"
For i = 1 To ActiveSheet.Range("a1").End(xlToRight).Column
For j = 1 To UBound(Arr1, 2)
If ActiveSheet.Cells(1, i) = Arr1(1, j) Then
ActiveSheet.Cells(1, i).Resize(UBound(Arr1), 1) = Application.Index(Arr1, , j)
Exit For
End If
Next j
Next i
Range("C2").Select
Application.ScreenUpdating = True
End Sub