Mình đang cần chuyển đổi cột thành hàng và thêm vào các thông tin. Chi tiết tại file excel các bạn xem giúp mình với vì nói cũng hơi khó mong các bạn thông cảm. Cám ơn các bạn nhiều
Nếu biết dùng VBA thì thử với code này:Các bạn down file excel theo link này giúp mình. Mình không upload được lên diễn đàn
http://www.mediafire.com/?sharekey=38ccb71e8391c05fd1014a7a667fa2b4e04e75f6e8ebb871
Sub Test()
Dim iR As Long, iC As Long, i As Long
On Error Resume Next
With Application.InputBox("Chon vung", Type:=8)
For iR = 1 To Intersect(.Offset(1), .Resize(, 1)).Rows.Count
For iC = 1 To Intersect(.Offset(, 1), .Resize(1)).Columns.Count
i = i + 1
ActiveCell(i, 1) = .Cells(iR + 1, 1) & "-" & .Cells(1, iC + 1)
ActiveCell(i, 2) = .Cells(iR + 1, iC + 1)
Next iC
Next iR
End With
End Sub
Sub Test()
Dim Clls As Range, i As Long
On Error Resume Next
With Application.InputBox("Chon vung", Type:=8)
For Each Clls In Intersect(.Offset(1, 1), .Cells)
i = i + 1
ActiveCell(i, 1) = .Parent.Cells(Clls.Row, .Column) & "-" & .Parent.Cells(.Row, Clls.Column)
ActiveCell(i, 2) = Clls
Next Clls
End With
End Sub
--------Ah... thêm 1 chiêu khác ---> 1 vòng lập (tốc độ như nhau)
PHP:Sub Test() Dim Clls As Range, i As Long On Error Resume Next With Application.InputBox("Chon vung", Type:=8) For Each Clls In Intersect(.Offset(1, 1), .Cells) i = i + 1 ActiveCell(i, 1) = .Parent.Cells(Clls.Row, .Column) & "-" & .Parent.Cells(.Row, Clls.Column) ActiveCell(i, 2) = Clls Next Clls End With End Sub
Nếu là em thì em làm như sau:--------
Đọc 2 code này chẳng hiểu tí gì ( tự trách mình ), xử dụng thì thấy hay lắm, vận dụng tốt sẽ giải quyết nhiều vấn đề.
Xin phép cho hỏi thêm:
- Nếu trích ra 1 vùng cố định theo yêu cầu có được không ?
- Nếu chọn vùng không liên tục thì giải quyết ra sao ( ví dụ: ABCD, chọn ABC => OK, chọn ACD thì ? )
Chào chú.
--------Nếu là em thì em làm như sau:
- Chọn vùng không liên tục và copy nó sang 1 vùng tạm
- Sau khi paste xong, đương nhiên vùng không liên tục này sẽ trờ thành liên tục
- Dùng code lọc như em trình bày ở trên
- Ra kết quả xong, xóa luôn vùng tạm
------------
Hướng đi này thật đơn giản, em nghĩ anh vẫn có thể nghĩ ra được, đúng không?
Thì anh làm cách gì cũng được, chỉ là hướng đi... còn nếu làm thật ta đâu có làm bằng tay ---> Tay phải viết toàn bộ thành code chứ--------
Dữ liệu thật thì vài trăm dòng, vài chục cột => lo copy, paste từng cột => oải.
Anh làm được rồi chú à: move or copy => xóa cột thừa => khỏe
-----Thì anh làm cách gì cũng được, chỉ là hướng đi... còn nếu làm thật ta đâu có làm bằng tay ---> Tay phải viết toàn bộ thành code chứ
Ẹc... Ẹc...
Xin phép cho hỏi thêm:
- Nếu chọn vùng không liên tục thì giải quyết ra sao ?
Đọc 2 code này chẳng hiểu tí gì ( tự trách mình ), xử dụng thì thấy hay lắm, vận dụng tốt sẽ giải quyết nhiều vấn đề.