Làm thế nào để tạo Macro kết hợp dữ liệu ở cột đầu với các cột sau?

  • Thread starter Thread starter NHG
  • Ngày gửi Ngày gửi
Liên hệ QC

NHG

Thành viên hoạt động
Tham gia
15/1/07
Bài viết
148
Được thích
126
Mình có một dữ liệu nguồn như sau:
1 A B C D E
2 F G H Y K
3 L M N O P

Mình muốn có một Macro để có dữ liệu đích như sau:

1 A
1 B
1 C
1 E
2 F
2 G
2 H
2 Y
2 K
...

Chi tiết mình gửi ở File đính kèm, các bạn giúp mình nhé
 

File đính kèm

NHG đã viết:
Các bạn sửa lại code giúp mình với:

Exceldongthanhcot.jpg
Dùng code này cho xóa thoai mái các dữ liệu trong bất kỳ ô nào (khi có đủ 3 dữ liệu để ghép thành cột thì nó mới ghép, nếu không đủ 3 dữ liệu thì nó không ghép)
Sub DongCot()
Dim eCol As Integer, i As Integer, j As Integer, z As Integer
Sheet1.Select
Range("G12:I100").ClearContents
eCol = Range("AZ5").End(xlToLeft).Column - 1
z = 11
For i = 5 To 7
If Cells(i, 2) <> "" Then
For j = 2 To eCol Step 2
If Cells(i, j + 1) <> "" And Cells(i, j + 2) <> "" Then
z = z + 1
Cells(z, 7) = Cells(i, 2)
Cells(z, 8) = Cells(i, j + 1)
Cells(z, 9) = Cells(i, j + 2)
End If
Next
End If
Next
End Sub
Mình muốn hỏi làm ngược lại công đoạn trên (Từ cột dọc -> chuyển về thành hàng)thì làm thế nào
 
Upvote 0
Làm thế này là 1 cách:

boyxin đã viết:
Mình muốn hỏi làm ngược lại công đoạn trên (Từ cột dọc -> chuyển về thành hàng)thì làm thế nào
PHP:
Option Explicit

Sub ColumnsToRows()
 Dim lRow As Long, jZ As Long, dRow As Long
 Dim sTemp As String:                           Dim dCol As Integer
 
 Sheets("Sheet1").Select
 Range("B5:Z11").ClearContents
 lRow = Range("G65432").End(xlUp).Row
 dRow = 4
 For jZ = 12 To lRow
    With Cells(jZ, 7)
        If .Value <> sTemp Then
            dRow = dRow + 1:                    dCol = 3
            sTemp = .Value:                     Cells(dRow, 2) = sTemp
        End If
        .Offset(, 1).Resize(1, 2).Copy Destination:=Cells(dRow, dCol)
        dCol = dCol + 2
    End With
 Next jZ
End Sub
Giải thích thêm:
* 12 là hàng đầu tiên chứa dữ liệu nguồn;
* B5: ô đầu tiên chứa dữ liệu (lúc này là ) đích
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom