Chuyển đổi dữ liệu từ mảng nằm sang mảng đứng. (1 người xem)

Liên hệ QC

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

hoanvu0201

Thành viên mới
Tham gia
26/8/16
Bài viết
3
Được thích
0
Hi all. Xin hãy giúp e với !!!
Trong sheetnhap có một mảng dữ liệu phạm vi mang1(A1:AB19) là 19 hàng x 28 cột. Sau khi nhấn nút nhập thì ở sheetxuat sẽ chuyển đổi mảng sang mang2(A1:S28) là 28 hàng x 19 cột. Dữ liệu trong mang1 nằm ở hàng sẽ chuyển thàng cột và ngược lại. Sau khi nhấn nút chạy dữ liệu, thì ở sheet nhập sẽ tự Clearcontents để nhập dữ liệu khác. Và ở sheet xuất sẽ tự động xuống hàng khi nhập dữ liệu
 
Hi all. Xin hãy giúp e với !!!
Trong sheetnhap có một mảng dữ liệu phạm vi mang1(A1:AB19) là 19 hàng x 28 cột. Sau khi nhấn nút nhập thì ở sheetxuat sẽ chuyển đổi mảng sang mang2(A1:S28) là 28 hàng x 19 cột. Dữ liệu trong mang1 nằm ở hàng sẽ chuyển thàng cột và ngược lại. Sau khi nhấn nút chạy dữ liệu, thì ở sheet nhập sẽ tự Clearcontents để nhập dữ liệu khác. Và ở sheet xuất sẽ tự động xuống hàng khi nhập dữ liệu
Cử chuối như sau:
Mã:
Sub nhap()
    Dim rng As Range
    Set rng = Sheet1.Range("a1:ab19")
    rng.Copy
    Sheet2.Range("A" & Sheet2.Range("A65000").End(xlUp).Row + 1).PasteSpecial Transpose:=True
    rng.ClearContents
    [A1].Select
End Sub
 
Cái này thì dễ rồi, nhưng mình muốn sử dụng VBA đổi thành mảng mà
Mã:
Public Function TransArr(sArr As Variant) As Variant
Dim TmpArr As Variant, x As Long, y As Long
ReDim TmpArr(UBound(sArr, 2), UBound(sArr, 1))
For x = 0 To UBound(sArr, 2)
    For y = 0 To UBound(sArr, 1)
        TmpArr(x, y) = sArr(y, x)
    Next y
Next x
TransArr = TmpArr
End Function
 
Nếu sArr là mảng lấy từ Range của bảng tính thì 'Base' luôn = 1 chứ anh. (Có thể dùng LBound)
Nên thêm một biến gán UBound(sArr, 1) để tránh gọi lại nhiều lần trong vòng lặp.
Có biết chủ thớt lấy dữ liệu thế nào đâu, chỉ là code có sẵn nên gởi lên cho chủ thớt tham khảo thôi
Đúng ra là phải viết là LBound để bao vây. Đúng là những đoạn code viết lúc trước còn nhiều sơ sót quá.
Lúc trước thì cần phải đảo mảng chứ bây giờ thì cần thiết sẽ xử lý ngay trong mảng ngược cho nhanh
 
Các anh chị cho hỏi nếu muốn chuyển thành 1 cột thì làm ntn. Xin cảm ơn
A1
B1
...
AB1
A2
B2
...
AB2
...
A19
B19
...
AB19
 
Các anh chị cho hỏi nếu muốn chuyển thành 1 cột thì làm ntn. Xin cảm ơn
A1
B1
...
AB1
A2
B2
...
AB2
...
A19
B19
...
AB19
Góp ý cho bạn:
1/ Bạn hỏi chen ngang mà không cùng chủ đề là vi phạm nội quy của diễn đàn.
2/ Bạn nên mở Topic khác với tiêu đề là "Copy lặp qua nhiều cột và Paste xuống vào 1 cột".
3/ Khi hỏi thì nên đính kèm File với tiêu đề là thực tế, dữ liệu có thể là giả định, thì người giúp mới hiểu được Copy từ sheet nào qua sheet nào và Paste vào đâu.
 
Web KT

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

Back
Top Bottom