Cần viết Code kiểm tra xem dữ liệu từ ô B3 đến ô B23 là đang tăng dần hay giảm dần (1 người xem)

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

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
934
Được thích
240
Giới tính
Nam
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Dọc theo cột B (Cụ thể là từ ô B3 đến ô B23) đang Sort dữ liệu theo kiểu tăng dần như hình sau:

i0f09Il.png


=> Có Code nào kiểm tra xem dữ liệu
từ ô B3 đến ô B23 là đang theo kiểu tăng dần hay không ? Nếu đúng là đang theo kiểu tăng dần thì hiện Msgbox ghi là Dữ liệu đang theo kiểu tăng dần và tự sắp xếp lại dữ liệu từ ô B3 đến ô B23 theo kiểu giảm dần. Và ngược lại.
Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.

 

File đính kèm

Gán 1 cái cờ giá trị đầu tiên bằng true. Duyệt từ đầu đến cuối so sánh tăng dần hay giảm dần, nếu đk sai thì bật cái cờ bằng false sau đó thoát khỏi vòng lặp. Kiểm tra xem cái cờ bằng true thì kết luận... Cái cờ bằng false thì kết luận ...
 
Upvote 0
Gán 1 cái cờ giá trị đầu tiên bằng true. Duyệt từ đầu đến cuối so sánh tăng dần hay giảm dần, nếu đk sai thì bật cái cờ bằng false sau đó thoát khỏi vòng lặp. Kiểm tra xem cái cờ bằng true thì kết luận... Cái cờ bằng false thì kết luận ...
Bạn có thể gợi ý thêm cho tôi được không ạ?
 
Upvote 0
Có cái code tương tự như yêu cầu nè. Code này lượm trên mạng thôi.

Sub CommandButton1_Click()


Dim xlSort As XlSortOrder
Dim LastRow As Long


With ActiveSheet


LastRow = .Cells(.Rows.Count, "E").End(xlUp).Row


If (.Range("E2").Value > .Range("E" & CStr(LastRow))) Then
xlSort = xlAscending
Else
xlSort = xlDescending
End If


.Range("E2:E" & LastRow).Sort Key1:=.Range("E2"), Order1:=xlSort, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal


End With
ActiveWorkbook.Save


End Sub
 
Upvote 0
Có cái code tương tự như yêu cầu nè. Code này lượm trên mạng thôi.
Sub CommandButton1_Click()
Dim xlSort As XlSortOrder
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "E").End(xlUp).Row
If (.Range("E2").Value > .Range("E" & CStr(LastRow))) Then
xlSort = xlAscending
Else
xlSort = xlDescending
End If
.Range("E2:E" & LastRow).Sort Key1:=.Range("E2"), Order1:=xlSort, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
ActiveWorkbook.Save
End Sub
Cảm ơn bạn, Code trên tôi xin phép sửa lại cho đúng với bài này:
[GPECODE=vb]Sub CommandButton1_Click1()
Dim xlSort As XlSortOrder
Dim LastRow As Long
LastRow = Cells(Rows.Count, "B").End(xlUp).Row
If Range("B3").Value > Range("B" & LastRow & "") Then
xlSort = xlAscending
Else
xlSort = xlDescending
End If
Range("B3:B" & LastRow).Sort Key1:=Range("B3"), Order1:=xlSort, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub[/GPECODE]
 
Upvote 0

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

Back
Top Bottom