Cần giúp đỡ về code chuyển cột thành dòng (1 người xem)

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

Người dùng đang xem chủ đề này

trungksc

Thành viên mới
Tham gia
27/2/10
Bài viết
7
Được thích
0
EM có một file dữ lieu, cần chuyển cột thành dòng có lựa chợn như file ví dụ. Xin các cao thủ cho em xin code chuyển với. Chứ dữ liệu nhiều làm thủ công không xuể. XIn chân thành cảm ơn.
Lần đầu đăng bài, có gì sai sót xin các Mod thông báo và chuyển bài giùm.
 

File đính kèm

EM có một file dữ lieu, cần chuyển cột thành dòng có lựa chợn như file ví dụ. Xin các cao thủ cho em xin code chuyển với. Chứ dữ liệu nhiều làm thủ công không xuể. XIn chân thành cảm ơn.
Lần đầu đăng bài, có gì sai sót xin các Mod thông báo và chuyển bài giùm.
Bạn thử dùng cái Code siêu kinh khủng này xem
Mã:
Sub Chuyen()
    Dim i As Long, K As Long
K = 1
With Sheet1
    For i = 2 To .Range("A65535").End(3).Row
        K = K + 1
        If i > .Range("A65535").End(3).Row Then Exit Sub
        .Cells(K, 4) = .Cells(i, 1): .Cells(K, 5) = .Cells(i, 2)
        .Cells(K, 6) = .Cells(i + 1, 1): .Cells(K, 7) = .Cells(i + 1, 2)
        .Cells(K, 8) = .Cells(i + 2, 1): .Cells(K, 9) = .Cells(i + 2, 2)
        .Cells(K, 10) = .Cells(i + 3, 1): .Cells(K, 11) = .Cells(i + 3, 2)
        .Cells(K, 12) = .Cells(i + 4, 1): .Cells(K, 13) = .Cells(i + 4, 2)
        i = i + 4
    Next i
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử dùng cái Code siêu kinh khủng này xem
Mã:
Sub Chuyen()
    Dim i As Long, K As Long
K = 1
With Sheet1
    For i = 2 To .Range("A65535").End(3).Row
        K = K + 1
        If i > .Range("A65535").End(3).Row Then Exit Sub
        .Cells(K, 4) = .Cells(i, 1): .Cells(K, 5) = .Cells(i, 2)
        .Cells(K, 6) = .Cells(i + 1, 1): .Cells(K, 7) = .Cells(i + 1, 2)
        .Cells(K, 8) = .Cells(i + 2, 1): .Cells(K, 9) = .Cells(i + 2, 2)
        .Cells(K, 10) = .Cells(i + 3, 1): .Cells(K, 11) = .Cells(i + 3, 2)
        .Cells(K, 12) = .Cells(i + 4, 1): .Cells(K, 13) = .Cells(i + 4, 2)
        i = i + 4
    Next i
End With
End Sub
Cảm ơn bạn đã giúp đỡ. Nhưng ý mình muốn code nó có ô lựa chọn cho phép lựa chọn các một số dòng nhất định nào của cột rồi chuyển sang thành dòng theo vị trí cũng được lựa chọn theo ý muốn. Mình hơi gà VBA nên mong được giúp đỡ kỹ xíu :D. Thank
 
Upvote 0
Cảm ơn bạn đã giúp đỡ. Nhưng ý mình muốn code nó có ô lựa chọn cho phép lựa chọn các một số dòng nhất định nào của cột rồi chuyển sang thành dòng theo vị trí cũng được lựa chọn theo ý muốn. Mình hơi gà VBA nên mong được giúp đỡ kỹ xíu :D. Thank
Cái mà hiện bảng để chọn ô thì em làm được. Còn chuyển sang thành dòng theo vị trí được lựa chọn thì em không biết làm hu hu .... !$@!!
Nếu thành 1 hàng thì còn được đó anh
 
Lần chỉnh sửa cuối:
Upvote 0
Cái mà hiện bảng để chọn ô thì em làm được. Còn chuyển sang thành dòng theo vị trí được lựa chọn thì em không biết làm hu hu .... !$@!!
Nếu thành 1 hàng thì còn được đó anh
Khó nhỉ. Cảm ơn bạn nhiều nha :D Không biết có cao thủ nào cao tay hơn không giúp với. :D.
 
Upvote 0
Thôi anh dùng tạm cái này đi vậy
Mã:
Sub RowtoCol()
    Dim sArr, dArr, j As Long, I As Long, K As Long, m As Long
    Dim nRng As Range, dRng As Range
    On Error GoTo 1
    Set nRng = Application.InputBox(Prompt:="Chon du lieu ", Title:="Chon vung du lieu:", Type:=8)
    sArr = nRng.Value
    ReDim dArr(1 To 1, 1 To UBound(sArr, 2) * UBound(sArr, 1))
    For I = 1 To UBound(sArr)
        For j = 1 To UBound(sArr, 2)
        K = K + 1
            dArr(1, K) = sArr(I, j)
        Next j
    Next I
    Set dRng = Application.InputBox(Prompt:="chon o gan ket qua ", Title:="Range Select", Type:=8)
    dRng.Resize(1, K) = dArr
1:
End Sub
 
Upvote 0
Thôi anh dùng tạm cái này đi vậy
Mã:
Sub RowtoCol()
    Dim sArr, dArr, j As Long, I As Long, K As Long, m As Long
    Dim nRng As Range, dRng As Range
    On Error GoTo 1
    Set nRng = Application.InputBox(Prompt:="Chon du lieu ", Title:="Chon vung du lieu:", Type:=8)
    sArr = nRng.Value
    ReDim dArr(1 To 1, 1 To UBound(sArr, 2) * UBound(sArr, 1))
    For I = 1 To UBound(sArr)
        For j = 1 To UBound(sArr, 2)
        K = K + 1
            dArr(1, K) = sArr(I, j)
        Next j
    Next I
    Set dRng = Application.InputBox(Prompt:="chon o gan ket qua ", Title:="Range Select", Type:=8)
    dRng.Resize(1, K) = dArr
1:
End Sub
Thank bạn nhiều nha. Như này cũng OK rồi. :D cảm ơn nhiều nhé :D
 
Upvote 0
Thôi anh dùng tạm cái này đi vậy
Mã:
Sub RowtoCol()
    Dim sArr, dArr, j As Long, I As Long, K As Long, m As Long
    Dim nRng As Range, dRng As Range
    On Error GoTo 1
    Set nRng = Application.InputBox(Prompt:="Chon du lieu ", Title:="Chon vung du lieu:", Type:=8)
    sArr = nRng.Value
    ReDim dArr(1 To 1, 1 To UBound(sArr, 2) * UBound(sArr, 1))
    For I = 1 To UBound(sArr)
        For j = 1 To UBound(sArr, 2)
        K = K + 1
            dArr(1, K) = sArr(I, j)
        Next j
    Next I
    Set dRng = Application.InputBox(Prompt:="chon o gan ket qua ", Title:="Range Select", Type:=8)
    dRng.Resize(1, K) = dArr
1:
End Sub
Mà làm phiện bạn xíu nữa. Ví dụ mình chỉ muốn chuyển khoảng 8 điểm vào một hàng, đủ 8 điểm thì nó sẽ tự động nhảy xuống hàng tiếp theo thì code thế nào nhỉ?:D
 
Upvote 0
Mà làm phiện bạn xíu nữa. Ví dụ mình chỉ muốn chuyển khoảng 8 điểm vào một hàng, đủ 8 điểm thì nó sẽ tự động nhảy xuống hàng tiếp theo thì code thế nào nhỉ?:D
Như bài 4 em đã nói rồi. Hiện tại thì ngắt thành nhiều hàng hơi phức tạp 1 tý ( Vì số dòng cần ngắt không cố định). Để mai em thử xem sao
 
Upvote 0
Như bài 4 em đã nói rồi. Hiện tại thì ngắt thành nhiều hàng hơi phức tạp 1 tý ( Vì số dòng cần ngắt không cố định). Để mai em thử xem sao
OK. CÓ gì làm phiền xíu nhé. Mình hơi gà khoản này. Mình làm bên xây dựng sô liệu nó lên mấy nghìn điểm. Làm thủ công thì nó lâu quá. Mà bạn cho mình nick face với. CÓ gì sau này giờ giúp cho tiện :D
 
Upvote 0
OK. CÓ gì làm phiền xíu nhé. Mình hơi gà khoản này. Mình làm bên xây dựng sô liệu nó lên mấy nghìn điểm. Làm thủ công thì nó lâu quá. Mà bạn cho mình nick face với. CÓ gì sau này giờ giúp cho tiện :D
Em không chơi face. Nếu vậy anh gửi số liệu thực lên và nêu rõ nội dung cho dễ hình dung. Vậy là anh em mình cùng nghề rồi đó. Trên diễn đàn dân xây dựng nhiều lắm...
 
Upvote 0
Anh thử lại với Code này xem sao nha:
Mã:
Sub RowtoCol()
    Dim sArr, dArr, j As Long, I As Long, K As Long, Col As Long, R As Long, N As Integer
    Dim nRng As Range, dRng As Range
    On Error GoTo 1
    Set nRng = Application.InputBox(Prompt:="Chon du lieu ", Title:="Chon vung du lieu:", Type:=8)
    N = InputBox(" Nhap so N la so hang ngat dong ", " Nhap so N")
    K = 1
    sArr = nRng.Value
    ReDim dArr(1 To 65535, 1 To UBound(sArr, 2) * N)
    For I = 1 To UBound(sArr)
        R = R + 1
        For Col = 1 To UBound(sArr, 2)
            j = j + 1
            dArr(K, j) = sArr(I, Col)
        Next Col
        If R = N Then
            j = 0: R = 0: K = K + 1
        End If
    Next I
    Set dRng = Application.InputBox(Prompt:="chon o gan ket qua ", Title:="Range Select", Type:=8)
    dRng.Resize(K, UBound(sArr, 2) * N) = dArr
1:
End Sub
 
Upvote 0
Anh thử lại với Code này xem sao nha:
Mã:
Sub RowtoCol()
    Dim sArr, dArr, j As Long, I As Long, K As Long, Col As Long, R As Long, N As Integer
    Dim nRng As Range, dRng As Range
    On Error GoTo 1
    Set nRng = Application.InputBox(Prompt:="Chon du lieu ", Title:="Chon vung du lieu:", Type:=8)
    N = InputBox(" Nhap so N la so hang ngat dong ", " Nhap so N")
    K = 1
    sArr = nRng.Value
    ReDim dArr(1 To 65535, 1 To UBound(sArr, 2) * N)
    For I = 1 To UBound(sArr)
        R = R + 1
        For Col = 1 To UBound(sArr, 2)
            j = j + 1
            dArr(K, j) = sArr(I, Col)
        Next Col
        If R = N Then
            j = 0: R = 0: K = K + 1
        End If
    Next I
    Set dRng = Application.InputBox(Prompt:="chon o gan ket qua ", Title:="Range Select", Type:=8)
    dRng.Resize(K, UBound(sArr, 2) * N) = dArr
1:
End Sub
Quá ngon luôn. Thank nhìu nhìu nhé. Giờ khỏe rồi. KHi nào có điều kiện hậu tạ sau nhé. Không biết là bạn ở đâu nhỉ :D
 
Upvote 0
Web KT

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

Back
Top Bottom