Chuyển cột thành dòng

hongphuong1997

Thành viên tiêu biểu
Tham gia ngày
12 Tháng mười một 2017
Bài viết
419
Được thích
108
Điểm
195
Tuổi
22
Không cố định thì bạn cho biết nó nằm trong khoảng nào hay bất kỳ?
Bác @befaint ơi như này nhé
Ví dụ như trong file cháu gửi đó là cách 3 dòng thì lấy
và nó sẽ lấy vô hạn dữ liệu ở cột A
và trả về số cột theo mong muốn
À cháu quên (Bất kỳ) bác ơi
 

hhoang_56

Thành viên chính thức
Tham gia ngày
22 Tháng bảy 2010
Bài viết
81
Được thích
40
Điểm
370
Search Google được cái này:

Mã:
Sub RowToColumnTranspose()
Dim rng As Range
Dim I As Long, numcol As Integer
    numcol = 6    
    I = 2
    Set rng = Range("A1")
    While rng.Value <> ""
        I = I + 1
        rng.Resize(numcol).Copy
        Range("D" & I).PasteSpecial Transpose:=True
        Set rng = rng.Offset(numcol)
    Wend
End Sub
thay đổi số cột ở dòng numcol = 6
 
Lần chỉnh sửa cuối:

hongphuong1997

Thành viên tiêu biểu
Tham gia ngày
12 Tháng mười một 2017
Bài viết
419
Được thích
108
Điểm
195
Tuổi
22
Thử cái này:

Mã:
Sub RowToColumnTranspose()
Dim rng As Range
Dim I As Long, numcol As Integer
    numcol = 6    
    I = 2
    Set rng = Range("A1")
    While rng.Value <> ""
        I = I + 1
        rng.Resize(numcol).Copy
        Range("D" & I).PasteSpecial Transpose:=True
        Set rng = rng.Offset(numcol)
    Wend
End Sub
thay đổi số cột ở dòng numcol = 6
Em chẳng biết xưng hô như nào với anh (Bởi vì em không hiểu rõ)
Nhưng em cảm ơn anh rất nhiều
Chúc anh vui vẻ, hạnh phúc và may mắn
Chúc anh nữa là thành đạt hết tất cả anh nhé.
 

hongphuong1997

Thành viên tiêu biểu
Tham gia ngày
12 Tháng mười một 2017
Bài viết
419
Được thích
108
Điểm
195
Tuổi
22
Search Google được cái này:

Mã:
Sub RowToColumnTranspose()
Dim rng As Range
Dim I As Long, numcol As Integer
    numcol = 6   
    I = 2
    Set rng = Range("A1")
    While rng.Value <> ""
        I = I + 1
        rng.Resize(numcol).Copy
        Range("D" & I).PasteSpecial Transpose:=True
        Set rng = rng.Offset(numcol)
    Wend
End Sub
thay đổi số cột ở dòng numcol = 6
Bác
hhoang_56
ơi, nếu như trong trường hợp lấy cách dòng như thế này thì phải làm như nào hở bác
 

File đính kèm

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
2,049
Được thích
1,794
Điểm
360
Bác
hhoang_56
ơi, nếu như trong trường hợp lấy cách dòng như thế này thì phải làm như nào hở bác
Em thử cái này.
Mã:
Sub chuyendulieu()
    Const socot As Long = 5
    Const buocdem As Integer = 2
    Dim i As Long, lr As Long, arr, kq, a As Long, b As Long, c As Long
    With Sheets("sheet1")
        lr = .Range("B" & Rows.Count).End(xlUp).Row
        arr = .Range("A1:B" & lr).Value
        ReDim kq(1 To UBound(arr), 1 To socot)
        For i = 1 To UBound(arr) Step buocdem
            a = Int(c / socot) + 1
            b = (c) Mod socot + 1
            c = c + 1
            kq(a, b) = arr(i, 2)
        Next i
        .Range("E3").Resize(1000, 20).ClearContents
        .Range("E3").Resize(a, socot).Value = kq
   End With
End Sub
 

hongphuong1997

Thành viên tiêu biểu
Tham gia ngày
12 Tháng mười một 2017
Bài viết
419
Được thích
108
Điểm
195
Tuổi
22

hongphuong1997

Thành viên tiêu biểu
Tham gia ngày
12 Tháng mười một 2017
Bài viết
419
Được thích
108
Điểm
195
Tuổi
22
Em thử cái này.
Mã:
Sub chuyendulieu()
    Const socot As Long = 5
    Const buocdem As Integer = 2
    Dim i As Long, lr As Long, arr, kq, a As Long, b As Long, c As Long
    With Sheets("sheet1")
        lr = .Range("B" & Rows.Count).End(xlUp).Row
        arr = .Range("A1:B" & lr).Value
        ReDim kq(1 To UBound(arr), 1 To socot)
        For i = 1 To UBound(arr) Step buocdem
            a = Int(c / socot) + 1
            b = (c) Mod socot + 1
            c = c + 1
            kq(a, b) = arr(i, 2)
        Next i
        .Range("E3").Resize(1000, 20).ClearContents
        .Range("E3").Resize(a, socot).Value = kq
   End With
End Sub
Chuẩn quá anh @snow25 ơi
Em cảm ơn anh nhiều nhé
Chúc anh vui vẻ
 
Top Bottom