试试这种方式,可以保留格式
Sub bbb()
Dim Cnum1%, Cnum2%, Rnum%, FC As Range
Cnum1 = Sheet1.Range("a2").End(xlToRight).Column
Cnum2 = Sheet1.Range("a1").End(xlToRight).Column
Rnum = Sheet1.Range("a65536").End(xlUp).Row - 1
Sheet1.Range("a1").Resize(1, Cnum2).Copy Sheet1.Cells(1, Cnum1 + 1)
For i = Cnum1 + 1 To Cnum1 + Cnum2
Set FC = Sheet1.Rows(2).Find(Sheet1.Cells(1, i), , , xlWhole)
If Not FC Is Nothing Then
Sheet1.Cells(2, FC.Column).Resize(Rnum, 1).Copy Sheet1.Cells(1, i)
End If
Next i
Sheet1.Range(Columns(1), Columns(Cnum1)).Delete
End Sub
Sub bbb()
Dim Cnum1%, Cnum2%, Rnum%, FC As Range
Cnum1 = Sheet1.Range("a2").End(xlToRight).Column
Cnum2 = Sheet1.Range("a1").End(xlToRight).Column
Rnum = Sheet1.Range("a65536").End(xlUp).Row - 1
Sheet1.Range("a1").Resize(1, Cnum2).Copy Sheet1.Cells(1, Cnum1 + 1)
For i = Cnum1 + 1 To Cnum1 + Cnum2
Set FC = Sheet1.Rows(2).Find(Sheet1.Cells(1, i), , , xlWhole)
If Not FC Is Nothing Then
Sheet1.Cells(2, FC.Column).Resize(Rnum, 1).Copy Sheet1.Cells(1, i)
End If
Next i
Sheet1.Range(Columns(1), Columns(Cnum1)).Delete
End Sub