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
Chào bạn bạn có thể mô tả rõ hơn được không?
vùng ô cần sắp thì do người dùng tự chọn ạ
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
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ù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
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