Tạo Macro tự động sắp xếp 10 dữ liệu trong bảng tính (10 hàng x 10 cột) (1 người xem)

Liên hệ QC

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

mquang909

Thành viên mới
Tham gia
21/4/14
Bài viết
8
Được thích
0
Xin chào mọi người. Mình đang cần tạo một Macro tự động sắp xếp dữ liệu tăng dần trong một bảng tính 10 hàng và 10 cột. Mình đã sử dụng chức năng ghi lại một Macro như sau: copy toàn bộ dữ liệu sang 1 cột tạm, sử dụng chức năng sắp xếp dữ liệu cho cột này và copy lại dữ liệu sau khi sắp xếp về vị trí ban đầu. Tuy nhiên Macro này chạy khá lâu ở những máy công ty. Các bạn có thể giúp mình chỉnh sửa lại Macro đơn giản hơn được không. Mình cám ơn nhiều!
 

File đính kèm

Bạn thử đưa file có dữ liệu và kết quả xem sao. Mình coi vào không hiểu bạn định làm gì !
 
Upvote 0
Xin chào mọi người. Mình đang cần tạo một Macro tự động sắp xếp dữ liệu tăng dần trong một bảng tính 10 hàng và 10 cột. Mình đã sử dụng chức năng ghi lại một Macro như sau: copy toàn bộ dữ liệu sang 1 cột tạm, sử dụng chức năng sắp xếp dữ liệu cho cột này và copy lại dữ liệu sau khi sắp xếp về vị trí ban đầu. Tuy nhiên Macro này chạy khá lâu ở những máy công ty. Các bạn có thể giúp mình chỉnh sửa lại Macro đơn giản hơn được không. Mình cám ơn nhiều!

do file đó ko có số liệu --> khó đoán được bạn đang vọc cái gì nữa.

bạn theo các bước sau thì có thể đơn giản + cải thiện tốc độ:

tại Sub Sapxepdulieutangdan

1 - bạn tìm đến những nhóm gần giống với nhóm dưới
Mã:
Range("E10:G19").Select
Application.CutCopyMode = False
Selection.Copy
thay bằng: Range("E10:G19").Copy

2 - hãy thử bỏ hết các ActiveWindow.SmallScroll...

3 - nhóm này
Mã:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
bạn copy thành 1 Sub riêng
Mã:
Sub My_PasteSpecial()
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
quay trở lại Sub Sapxepdulieutangdan bạn thử thay nhóm trên thành Call My_PasteSpecial

4 - muốn code chạy nhanh thì bạn dùng: Application.ScreenUpdating đặt vào đầu và đuôi của mỗi Sub
Mã:
Application.ScreenUpdating = False
'    ooo   Your code here   ooo 
Application.ScreenUpdating = True
 
Upvote 0
Bạn thử đưa file có dữ liệu và kết quả xem sao. Mình coi vào không hiểu bạn định làm gì !
Mục đích của mình là để tạo macro tự động sắp xếp lại dữ liệu trong bảng. Bắt đầu với việc nhập 100 dữ liệu số vào trong bảng, sau đó khi khởi chạy macro thì sẽ tự động sắp xếp lại 100 dữ liệu trong bảng theo thứ tự tăng dần bạn à.
 
Upvote 0
Mục đích của mình là để tạo macro tự động sắp xếp lại dữ liệu trong bảng. Bắt đầu với việc nhập 100 dữ liệu số vào trong bảng, sau đó khi khởi chạy macro thì sẽ tự động sắp xếp lại 100 dữ liệu trong bảng theo thứ tự tăng dần bạn à.

tôi cũng ko hiểu được rỏ lắm, nhưng nếu bạn muốn sort lần lượt 10 cái cột đó thì thử code tôi quay lại bằng record macro, rồi đưa thêm vòng lặp vào
Mã:
Sub Sapxepdulieutangdan()
Application.ScreenUpdating = False
For i = 2 To 29 Step 3
      With Sheet1.Sort
        .SortFields.Clear
        .SortFields.Add Cells(10, i), xlSortOnValues, xlAscending, xlSortTextAsNumbers
        .SetRange Range(Cells(10, i), Cells(19, i + 2))
        .Header = xlNo
        .Apply
    End With
Next
Application.ScreenUpdating = True
End Sub
nếu nó vẫn chạy chậm thì phải đưa vào mảng để xử lý
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom