Nguyễn Hùng
Nguyễn Hùng
Thảo luận 7 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 208 lượt xem

Sub Macro3()'' Macro3 Macro'' ActiveWorkbookWorksheets("ThaiNhat")SortSortFieldsClear ActiveWorkbookWorksheets("ThaiNhat")SortSortFieldsd

Sub Macro3()

'

' Macro3 Macro

'


'

    ActiveWorkbook.Worksheets("ThaiNhat").Sort.SortFields.Clear

    ActiveWorkbook.Worksheets("ThaiNhat").Sort.SortFields.Add Key:=Range( _

        "E38:E73"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

        xlSortNormal

    ActiveWorkbook.Worksheets("ThaiNhat").Sort.SortFields.Add Key:=Range( _

        "F38:F73"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

        xlSortNormal

    ActiveWorkbook.Worksheets("ThaiNhat").Sort.SortFields.Add Key:=Range( _

        "I38:I73"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _

        xlSortNormal

    ActiveWorkbook.Worksheets("ThaiNhat").Sort.SortFields.Add Key:=Range( _

        "J38:J73"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _

        xlSortNormal

    ActiveWorkbook.Worksheets("ThaiNhat").Sort.SortFields.Add Key:=Range( _

        "K38:K73"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _

        xlSortNormal

    ActiveWorkbook.Worksheets("ThaiNhat").Sort.SortFields.Add Key:=Range( _

        "N38:N73"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

        xlSortNormal

    With ActiveWorkbook.Worksheets("ThaiNhat").Sort

        .SetRange Range("A38:Z73")  ' em muốn khi chạy code thì vùng ô này là do người dùng tự chọn ạ

        .Header = xlGuess

        .MatchCase = False

        .Orientation = xlTopToBottom

        .SortMethod = xlPinYin

        .Apply

    End With

End Sub

Thảo luận 7 câu trả lời
Lượt xem 208 lượt xem
Vỗ tay vỗ tay
Nguyễn Hùng 14:08 - Aug 26, 2020

Chào bạn bạn có thể mô tả rõ hơn được không?

Vỗ tay vỗ tay
Nguyễn Hùng 15:08 - Aug 26, 2020

vùng ô cần sắp thì do người dùng tự chọn ạ



Vỗ tay vỗ tay
Nguyễn Hùng 15:08 - Aug 26, 2020

Chào bạn chỉ có trường hợp để vùng ô đó như thế nào thôi dạng tìm dòng cuối và thực hiện thay range("A38:Z"&dc) và biến dc được tính ra thôi

Vỗ tay vỗ tay
Nguyễn Hùng 15:08 - Aug 26, 2020

em sẽ tạo ra 1 nút bấm có chức năng là sắp sếp dữ liệu 

khi người dùng bấm vào nút này thì sẽ được yêu cầu chọn vùng ô cần sắp sếp

sau khi chọn xong thì vùng dữ liệu đó sẽ đc sắp sếp lại 


Vỗ tay vỗ tay
Nguyễn Hùng 16:08 - Aug 26, 2020
Chào bạn vùng chọn của bạn đã có từ trước chưa hay là vùng chọn mới?
Vỗ tay vỗ tay
Nguyễn Hùng 07:08 - Aug 27, 2020

vùng dữ liệu đã có sẵn , nhưng không phải sắp sếp từ đầu đến dòng cuối, mà là người dùng chỉ chọn 1 vùng nhỏ trong vùng dữ liệu để sắp sếp thôi chứ không chọn hết . mà lựa chọn này chỉ có người dùng mới biết 

ví dụ : vùng dữ liệu có 100 dòng , nhưng

lần 1 : người dùng chỉ chọn từ dòng 20 đến dòng 50 

lần 2 : người dùng chọn từ dòng 70 đến 100

thì làm cách nào để tạo được 

người dùng chọn vùng ô trước rồi bấm vào nút để được sắp sếp các mục đã viết code sẵn

Vỗ tay vỗ tay
Nguyễn Hùng 09:08 - Aug 27, 2020

Chào bạn vùng 100 dòng đó cần phải tính ra được phần cần làm các bước sau:

thứ nhất cột trong vùng ta đã biết

B1: Tìm được dòng đầu tiên chứa dữ liệu

B2: Tìm được dòng cuối cùng có chứa dữ liệu

như vậy bạn đã có được hai vùng

Sub dulieu()

    Dim dongdau As Long, dongcuoi As Long

    dongdau = ThaiNhat.Range("A1").End(xlDown).Row

    dongcuoi = ThaiNhat.Range("A" & Rows.Count).End(xlUp).Row

    With ActiveWorkbook.Worksheets("ThaiNhat").Sort

        .SetRange Range("A"&dongdau ,"Z"& dongcuoi) 

        .Header = xlGuess

        .MatchCase = False

        .Orientation = xlTopToBottom

        .SortMethod = xlPinYin

        .Apply

    End With

End Sub



Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông