Chào anh chị cho hỏi:
Liệu tôi có thể tạo được macro để copy chuyển dữ liệu từ chiều dọc sang chiều ngang?
Ví dụ: dữ liệu gốc
1. Nguyễn Văn A
Học sinh
2. Nguyễn Văn B
Sinh viên
3. Trần thị C
Nhân viên
.......
1000. Phạm Thị Tèo
Công nhân
Tôi muốn chuyển thành:
TT Họ tên Công việc
1 Nguyễn Văn A Học sinh
2 Nguyễn Văn B Sinh viên
3 Trần Thị C Nhân viên
1000 Trần Thị Tèo Công nhân
Ý tôi muốn hỏi là liệu tôi có thể ghi 1 macro copy chuyển người thứ nhất rồi chạy macro để chạy copy những người sau?
Xin cảm ơn/
PT Tình
Chào bạn bạn có thể tham khảo code sau
Option Explicit
Sub chaybaocao()
Dim dc As Long, i As Long
dc = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Row
For i = 1 To dc
If i Mod 2 <> 0 Then
Sheet2.Range("A" & i) = Sheet1.Range("A" & i)
Else
Sheet2.Range("B" & i - 1) = Sheet1.Range("A" & i)
End If
Next i
Call sapsep
End Sub
Sub sapsep()
Dim dc As Long, i As Long
dc = Sheet2.Range("A" & Sheet2.Rows.Count).End(xlUp).Row
Columns("A:B").Select
ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add2 Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet2").Sort
.SetRange Range("A1:B" & dc)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Xin cảm ơn!
Cảm ơn bạn đã tin tưởng và ủng hộ gitiho, chúc bạn học tốt.