Hướng dẫn excel vba clear sort criteria - tiêu chí sắp xếp rõ ràng excel vba

Bỏ qua nội dung chính

Trình duyệt này không còn được hỗ trợ.

Nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, cập nhật bảo mật và hỗ trợ kỹ thuật.

SortFields.clear Phương thức [Excel]

  • Bài báo
  • 09/13/2021
  • 2 phút để đọc

Trong bài viết này

Xóa tất cả các đối tượng SortFields.SortFields objects.

Cú pháp

expression.ClearClear

Biểu thức Một biến đại diện cho một đối tượng SortFields.SortFields object.

Hỗ trợ và phản hồi

Có câu hỏi hoặc phản hồi về VBA văn phòng hoặc tài liệu này? Vui lòng xem hỗ trợ và phản hồi của Office VBA để được hướng dẫn về cách bạn có thể nhận được hỗ trợ và cung cấp phản hồi.

Tôi đang cố gắng sắp xếp dữ liệu thông qua Excel VBA nhưng nó đã được sắp xếp bằng một tiêu đề khác. Làm thế nào tôi có thể xóa tất cả các trường sắp xếp trước khi tôi đặt một trường mới? Tôi đã thử

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
9 nhưng nó không hoạt động. Mọi sự trợ giúp sẽ rất được trân trọng. Đây là mã tôi đang sử dụng:

 Sheet9.Activate

Columns["J:J"].Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells[1, "J"].Value = "InternalID"
Set rng2 = FindHeader["CLIENT NAME", Sheet9.Name]


Count = 1

Sheet9.Cells.Select

With Sheet9.Sort
        .SortFields.Clear
        .SortFields.Add Key:=rng2, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Đã hỏi ngày 3 tháng 3 năm 2015 lúc 15:34Mar 3, 2015 at 15:34

PhilippePhilip

1791 Huy hiệu vàng9 Huy hiệu bạc 20 Huy hiệu đồng1 gold badge9 silver badges20 bronze badges

5

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1

Tôi đã làm điều này cho mỗi cột có một trường sắp xếp và nó xóa chúng ra. Trường hợp trường: = x là số cột trong phạm vi của bạn mà bạn muốn xóa.

Đây là những gì tôi có trong sổ làm việc của mình. Sheet1 là tên mã của trang tính và RNG là chuỗi đại diện cho giá trị phạm vi ["B4: G1500"]

' Clear all filters 
Sheet1.Range[rng].AutoFilter Field:=1 
Sheet1.Range[rng].AutoFilter Field:=2
Sheet1.Range[rng].AutoFilter Field:=3
Sheet1.Range[rng].AutoFilter Field:=4
Sheet1.Range[rng].AutoFilter Field:=5
Sheet1.Range[rng].AutoFilter Field:=6

Đã trả lời ngày 19 tháng 2 năm 2020 lúc 13:02Feb 19, 2020 at 13:02

ChrischrisChris

11 Huy hiệu Đồng1 bronze badge

Trong bài viết này

  • Sắp xếp dữ liệu với Excel VBA
    • Sử dụng thực tế phương pháp sắp xếp trong VBA
    • Dữ liệu mẫu để chứng minh sự sắp xếp Excel với VBA
    • Ghi một macro cho một loại VBA
    • Mã VBA để thực hiện một loại cấp độ duy nhất
    • Mã VBA để thực hiện một loại đa cấp
    • Sắp xếp theo màu di động
    • Sắp xếp theo màu phông chữ
    • Sử dụng các tham số khác trong phân loại VBA
      • Sắp xếp
      • Gọi món
      • DataOption
      • Tiêu đề
      • Matchcase
      • Định hướng
      • Sắp xếp
      • Sử dụng một sự kiện nhấp đúp để sắp xếp dữ liệu bảng
    • Mở rộng chức năng sắp xếp bằng VBA

Sắp xếp dữ liệu với Excel VBA

Sử dụng thực tế phương pháp sắp xếp trong VBA

Hộp thoại Front-end được tìm thấy bằng cách nhấp vào biểu tượng ‘Sắp xếp trong nhóm‘ Sắp xếp & Bộ lọc của tab Data Data Data trên dải băng Excel. Bạn cần chọn một phạm vi dữ liệu bảng trước.

Bạn cũng có thể sử dụng Alt-A-S-S để hiển thị hộp thoại cho một loại tùy chỉnh.

Phương pháp sắp xếp đã được cải thiện rất nhiều trong các phiên bản sau của Excel. Loại được sử dụng để được giới hạn ở ba cấp độ, nhưng giờ đây bạn có thể tham gia nhiều cấp độ như nhu cầu của mình và điều này cũng được áp dụng trong VBA.

Bạn có thể kết hợp tất cả các chức năng sắp xếp được cung cấp trong hộp thoại Excel sắp xếp vào mã VBA của bạn. & NBSP; hàm sắp xếp trong Excel nhanh và nhanh hơn bất cứ điều gì bạn có thể tự viết trong VBA, vì vậy hãy tận dụng chức năng.

Lưu ý rằng khi bạn thực hiện một loại trong VBA, các tham số sắp xếp vẫn giống nhau trong hộp thoại Sắp xếp phía trước. Chúng cũng được lưu khi sổ làm việc được lưu.

Nếu người dùng chọn cùng một phạm vi dữ liệu bảng và nhấp vào biểu tượng sắp xếp, họ sẽ thấy tất cả các tham số của bạn đã được nhập bởi mã VBA của bạn. Nếu họ muốn thực hiện một loại thiết kế của riêng họ, thì họ sẽ phải xóa tất cả các cấp độ sắp xếp của bạn trước, điều này sẽ rất khó chịu cho họ.

Ngoài ra, nếu bạn không thay đổi các tham số trong mã của mình và dựa vào các giá trị mặc định, bạn có thể thấy rằng người dùng đã thực hiện các thay đổi sẽ phản ánh thông qua loại VBA của bạn và có thể cho kết quả không mong muốn, điều này có thể rất khó để gỡ lỗi .

May mắn thay, có một phương thức rõ ràng trong VBA để đặt lại tất cả các tham số sắp xếp để người dùng sẽ thấy hộp thoại Sắp xếp sạch

Worksheets["Sheet1"].Sort.SortFields.Clear

Đó là thực tế tốt để xóa các tham số sắp xếp trong VBA trước và sau khi loại đã được hoàn thành.

Sử dụng thực tế phương pháp sắp xếp trong VBA

Khi dữ liệu dạng bảng được nhập vào Excel, nó thường theo thứ tự rất ngẫu nhiên. Nó có thể được nhập từ tệp CSV [giá trị phân tách bằng dấu phẩy] hoặc nó có thể đến từ liên kết đến cơ sở dữ liệu hoặc trang web. Bạn không thể dựa vào nó theo thứ tự thiết lập từ nhập này sang nhập khác.

Nếu bạn đang trình bày dữ liệu này cho người dùng trong bảng tính của mình, người dùng cũng có thể khó xem xét và hiểu một lượng dữ liệu khổng lồ mà theo thứ tự là ở khắp mọi nơi. Họ có thể muốn nhóm dữ liệu, hoặc cắt và dán một số phần nhất định của nó vào một ứng dụng khác.

Họ cũng có thể muốn thấy, ví dụ, nhân viên được trả lương cao nhất hoặc nhân viên có dịch vụ dài nhất.

Sử dụng phương thức sắp xếp trong VBA, bạn có thể cung cấp các tùy chọn để cho phép dễ dàng sắp xếp cho người dùng.

Dữ liệu mẫu để chứng minh sự sắp xếp Excel với VBA

Trước tiên chúng tôi cần một số dữ liệu mẫu được nhập vào một bảng tính, để mã có thể chứng minh tất cả các cơ sở có sẵn trong VBA.

Sao chép dữ liệu này vào một bảng tính [được gọi là ‘sheet1,] chính xác như được hiển thị.

Lưu ý rằng các màu nền tế bào khác nhau và màu phông chữ đã được sử dụng, vì chúng cũng có thể được sử dụng làm tham số sắp xếp. Sắp xếp bằng cách sử dụng màu ô và phông chữ sẽ được thể hiện sau trong bài viết. Cũng lưu ý rằng trên ô E3, tên bộ phận là tất cả các trường hợp thường xuyên.

Bạn không cần màu bên trong ô và màu phông chữ nếu bạn không muốn sử dụng các ví dụ về việc sắp xếp theo màu ô và màu phông chữ.

Ghi một macro cho một loại VBA

Mã VBA để sắp xếp có thể trở nên khá phức tạp và đôi khi có thể là một ý tưởng tốt để thực hiện loại ở đầu phía trước của Excel và ghi lại một macro để cho bạn thấy mã hoạt động như thế nào.

Thật không may, chức năng ghi có thể tạo ra một lượng mã khổng lồ vì nó đặt hầu như mọi tham số có sẵn, mặc dù các giá trị mặc định cho nhiều tham số được chấp nhận cho hoạt động sắp xếp của bạn.

Tuy nhiên, nó cung cấp cho bạn một ý tưởng rất tốt về những gì liên quan đến việc viết mã sắp xếp VBA và một lợi thế là mã được ghi lại sẽ luôn hoạt động cho bạn. Mã của riêng bạn có thể cần kiểm tra và gỡ lỗi để làm cho nó hoạt động đúng.

Hãy nhớ rằng đối với một hoạt động được thực hiện trong VBA, không có tính năng hoàn tác, vì vậy, bạn nên tạo một bản sao của dữ liệu bảng lên một bảng tính khác trước khi bạn bắt đầu viết mã sắp xếp của mình.

Ví dụ, nếu bạn thực hiện một sắp xếp đơn giản trên dữ liệu mẫu ở trên, việc sắp xếp theo nhân viên, bản ghi sẽ tạo mã sau:

Sub Macro1[]

Range["A1:E6"].Select

ActiveWorkbook.Worksheets["Sheet1"].Sort.SortFields.Clear
ActiveWorkbook.Worksheets["Sheet1"].Sort.SortFields.Add2 Key:=Range["A2:A6"], _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets["Sheet1"].Sort
    .SetRange Range["A1:E6"]
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

End Sub

Đây là một đoạn mã khá lớn, và rất nhiều trong số đó là không cần thiết vì các tham số mặc định đang được sử dụng. Tuy nhiên, nếu bạn phải chịu áp lực thời gian để hoàn thành một dự án và bạn cần một số mã nhanh chóng hoạt động, bạn có thể dễ dàng dán nó vào mã VBA của riêng bạn.

Tuy nhiên, nếu bạn muốn làm cho mã của mình dễ hiểu và thanh lịch hơn, thì có những tùy chọn khác có sẵn. & NBSP; 

Mã VBA để thực hiện một loại cấp độ duy nhất

Nếu bạn chỉ muốn sắp xếp mã mẫu chỉ dựa trên nhân viên như trước khi ghi macro, mã rất đơn giản:

Sub SingleLevelSort[]

Worksheets["Sheet1"].Sort.SortFields.Clear

Range["A1:E6"].Sort Key1:=Range["A1"], Header:=xlYes

End Sub

Điều này dễ hiểu hơn nhiều so với mã được ghi lại vì nó chấp nhận các mặc định, ví dụ: sắp xếp tăng dần, do đó không cần phải đặt các tham số thành các giá trị mặc định. Điều này giả định rằng bạn đã sử dụng một câu lệnh ’rõ ràng trước đó.

Phương thức ’rõ ràng được sử dụng ban đầu để đảm bảo rằng mọi tham số sắp xếp cho bảng tính đó được đặt trở lại các giá trị mặc định. Người dùng có thể đã đặt các tham số trước đây thành các giá trị khác nhau hoặc một loại sớm hơn trong VBA có thể đã thay đổi chúng. Điều quan trọng là bắt đầu từ một vị trí mặc định khi sắp xếp, nếu không bạn có thể dễ dàng kết thúc với kết quả không chính xác.

Phương thức rõ ràng không đặt lại tham số tiêu đề và nên đưa vào mã này vào mã của bạn, nếu không, Excel có thể thử và đoán xem hàng tiêu đề có xuất hiện hay không.

Chạy mã này so với dữ liệu mẫu và bảng tính của bạn sẽ trông như thế này:

Mã VBA để thực hiện một loại đa cấp

Bạn có thể thêm nhiều cấp độ sắp xếp theo yêu cầu trong mã của bạn. Giả sử rằng bạn muốn sắp xếp đầu tiên theo bộ phận và sau đó vào ngày bắt đầu nhưng theo lệnh tăng dần cho bộ phận và đơn đặt hàng giảm dần cho ngày bắt đầu:

Sub MultiLevelSort[]

Worksheets["Sheet1"].Sort.SortFields.Clear

Range["A1:E6"].Sort Key1:=Range["E1"], Key2:=Range["C1"], Header:=xlYes, _
    Order1:=xlAscending, Order2:=xlDescending

End Sub

Lưu ý rằng hiện có hai khóa trong câu lệnh SORT [KEY1 và KEY2]. KEY1 [Cột bộ E] Trước hết và sau đó là KEY2 [Cột ngày bắt đầu C] được sắp xếp dựa trên sắp xếp đầu tiên.

Ngoài ra còn có hai tham số thứ tự. Order1 Associates với KEY1 [SỞ] và ASPRED2 Associates với KEY2 [ngày bắt đầu]. Điều quan trọng là đảm bảo rằng các khóa và đơn đặt hàng được giữ theo từng bước.

Chạy mã này so với dữ liệu mẫu và bảng tính của bạn sẽ trông như thế này:

Mã VBA để thực hiện một loại đa cấp

Bạn có thể thêm nhiều cấp độ sắp xếp theo yêu cầu trong mã của bạn. Giả sử rằng bạn muốn sắp xếp đầu tiên theo bộ phận và sau đó vào ngày bắt đầu nhưng theo lệnh tăng dần cho bộ phận và đơn đặt hàng giảm dần cho ngày bắt đầu:

Lưu ý rằng hiện có hai khóa trong câu lệnh SORT [KEY1 và KEY2]. KEY1 [Cột bộ E] Trước hết và sau đó là KEY2 [Cột ngày bắt đầu C] được sắp xếp dựa trên sắp xếp đầu tiên.

Sub MultiLevelSort[]

Worksheets["Sheet1"].Sort.SortFields.Clear
Worksheets["Sheet1"].UsedRange.Sort Key1:=Range["E1"], Key2:=Range["C1"], Header:=xlYes, _
    Order1:=xlAscending, Order2:=xlDescending

End Sub

Ngoài ra còn có hai tham số thứ tự. Order1 Associates với KEY1 [SỞ] và ASPRED2 Associates với KEY2 [ngày bắt đầu]. Điều quan trọng là đảm bảo rằng các khóa và đơn đặt hàng được giữ theo từng bước.

Cột bộ phận [E] theo thứ tự tăng dần và cột Ngày bắt đầu [C] theo thứ tự giảm dần.

Hiệu ứng của loại này là đáng chú ý nhất khi nhìn vào Jane Halfacre [hàng 3] và John Sutherland [hàng 4]. Cả hai đều ở trong tài chính nhưng Jane Halfacre bắt đầu trước khi John Sutherland và các ngày được thể hiện theo thứ tự giảm dần.

Nếu phạm vi dữ liệu bảng có thể có bất kỳ độ dài nào, bạn có thể sử dụng đối tượng sử dụng để xác định phạm vi sắp xếp. Điều này sẽ chỉ hoạt động nếu chỉ có dữ liệu bảng trên bảng tính vì bất kỳ giá trị nào bên ngoài dữ liệu sẽ cho kết quả không chính xác cho số lượng hàng và cột.

Điều này ngăn chặn vấn đề nếu bạn sử dụng phương thức ‘end [xldown], để xác định phạm vi sắp xếp. Nếu có một ô trống ở giữa dữ liệu, thì bất cứ điều gì sau khi di động trống sẽ không được bao gồm, trong khi sử dụng sẽ đi xuống ô hoạt động cuối cùng trong bảng tính.

Mã hóa VBA được thực hiện dễ dàng

Sub SingleLevelSortByCellColor[]

Worksheets["Sheet1"].Sort.SortFields.Clear
ActiveWorkbook.Worksheets["Sheet1"].Sort.SortFields.Add2 Key:=Range["A2:A6"], _
    SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets["Sheet1"].Sort
    .SetRange Range["A2:E6"]
    .Apply
End With

End Sub

Ngừng tìm kiếm mã VBA trực tuyến. Tìm hiểu thêm về Automacro - Trình tạo mã VBA cho phép người mới bắt đầu mã hóa các quy trình từ đầu với kiến ​​thức mã hóa tối thiểu và với nhiều tính năng tiết kiệm thời gian cho tất cả người dùng!

Tìm hiểu thêm !!

Sắp xếp theo màu di động

Kể từ Excel 2007, việc sắp xếp theo màu nền của một ô là có thể, điều này mang lại sự linh hoạt rất lớn khi thiết kế mã sắp xếp của bạn trong VBA.

Mã này sẽ sắp xếp phạm vi dữ liệu mẫu [A2: A6] dựa trên màu nền ô. Lưu ý rằng hiện tại có một tham số bổ sung có tên là ‘syton, có giá trị của‘ xlsorcellcolor.

Lưu ý rằng tham số ‘syton, chỉ có thể được sử dụng bởi một đối tượng bảng tính chứ không phải bởi một đối tượng phạm vi.

Do đó, mã phức tạp hơn so với một loại sử dụng các giá trị ô.

Sub SingleLevelSortByFontColor[]

Worksheets["Sheet1"].Sort.SortFields.Clear
ActiveWorkbook.Worksheets["Sheet1"].Sort.SortFields.Add[Range["A2:A6"], _
    xlSortOnFontColor, xlAscending, xlSortNormal].SortOnValue.Color = RGB[0, 0, 0]

With ActiveWorkbook.Worksheets["Sheet1"].Sort
    .SetRange Range["A1:E6"]
    .Header = xlYes
    .Orientation = xlTopToBottom
    .Apply
End With

End Sub

Mã này sử dụng giá trị khóa cho loại bao gồm toàn bộ phạm vi dữ liệu nhưng bạn có thể chỉ định các cột riêng lẻ làm khóa cho sắp xếp màu nền và sử dụng nhiều cấp độ như được hiển thị trước đó.

Sau khi chạy mã này, bảng tính của bạn bây giờ sẽ trông như thế này:

Sắp xếp theo màu phông chữ

Chức năng sắp xếp trong Excel VBA cung cấp tính linh hoạt hơn nữa mà bạn có thể sắp xếp theo Phông chữ:

Mã để sắp xếp theo màu phông chữ phức tạp hơn nhiều so với màu nền ô. Tham số ‘syton, hiện giữ giá trị của‘ xlsortonfontcolor.

Lưu ý rằng bạn phải chỉ định định hướng là ‘xltoptobottom, và bạn phải chỉ định một màu để sắp xếp. Điều này được chỉ định theo thuật ngữ RGB [đỏ, xanh lá cây, đen] với các giá trị đi từ 0 đến 255.

Sắp xếp

SHOton chọn liệu loại sẽ sử dụng các giá trị ô, màu nền ô hoặc màu phông chữ ô. Cài đặt mặc định là giá trị ô.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
0

Gọi món

Đặt hàng chọn liệu loại sẽ được thực hiện theo thứ tự tăng dần hoặc giảm dần. Mặc định là tăng dần.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
1

DataOption

DataOption chọn cách sắp xếp văn bản và số. Tham số xlsortnormal sắp xếp dữ liệu số và văn bản riêng biệt. Tham số xlsorttextasnumbers coi văn bản là dữ liệu số cho loại. Mặc định là xlsortnormal.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
2

Tiêu đề chọn liệu phạm vi dữ liệu bảng có hàng tiêu đề hay không. Nếu có một hàng tiêu đề, bạn không muốn cái này bao gồm trong loại.

Các giá trị tham số là Xlys, XLNO và XlySnoguess. Xlyesnoguess rời khỏi nó để xác định xem có hàng tiêu đề hay không, có thể dễ dàng dẫn đến kết quả không nhất quán. Việc sử dụng giá trị này không được khuyến khích.

Giá trị mặc định là XNO [không có hàng tiêu đề trong dữ liệu]. Với dữ liệu đã nhập, thường có một hàng tiêu đề, vì vậy hãy đảm bảo rằng bạn đặt tham số này thành Xlys.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
3

Matchcase

Tham số này xác định xem loại có nhạy cảm trường hợp hay không. Giá trị tùy chọn là đúng hoặc sai. Nếu giá trị là sai, thì các giá trị trường hợp thường được coi là giống như các giá trị trường hợp trên. Nếu giá trị là đúng, thì loại sẽ hiển thị sự khác biệt giữa các giá trị trường hợp trên và thường trong loại. Giá trị mặc định là sai.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
4

Định hướng

Tham số này xác định liệu loại sẽ diễn ra xuống qua các hàng hay trên tất cả các cột. Giá trị mặc định là xltoptobottom [sắp xếp qua các hàng]. Bạn có thể sử dụng XLLEFTTORIGHT nếu bạn muốn sắp xếp thời gian. Các giá trị như XLROWS và XLColumns không hoạt động cho tham số này.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
5

Sắp xếp

Tham số này chỉ được sử dụng để sắp xếp các ngôn ngữ Trung Quốc. Nó có hai giá trị, xlpinyin và xlstroke. xlpinyin là giá trị mặc định.

Xlpinyin sắp xếp bằng cách sử dụng thứ tự sắp xếp tiếng Trung cho các ký tự. Xlstroke sắp xếp theo số lượng đột quỵ trong mỗi ký tự.

Nếu bạn ghi lại một macro sắp xếp, tham số này sẽ luôn được đưa vào mã và bạn có thể tự hỏi nó có nghĩa là gì. Tuy nhiên, trừ khi bạn đang xử lý dữ liệu bằng tiếng Trung, nó ít được sử dụng.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
6

Sử dụng một sự kiện nhấp đúp để sắp xếp dữ liệu bảng

Trong tất cả các chức năng mà Microsoft bao gồm trong các phương thức sắp xếp cho VBA, nó không bao gồm một phương tiện đơn giản để nhấp đúp vào tiêu đề cột và sắp xếp toàn bộ dữ liệu bảng dựa trên cột cụ thể đó.

Đây là một tính năng thực sự hữu ích để có, và thật dễ dàng để viết mã để thực hiện nó.

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
7

Mã này cần được đặt trên sự kiện nhấp đúp trên trang tính chứa dữ liệu bảng. Bạn làm điều này bằng cách nhấp vào tên bảng tính trong cửa sổ Project Explorer [góc bàn tay trên bên trái của màn hình VBE], sau đó chọn ‘bảng tính trong lần thả xuống đầu tiên trên cửa sổ mã. Chọn ‘BeforedoubleClick, trong lần thả xuống thứ hai và sau đó bạn có thể nhập mã của mình.

Lưu ý rằng không có tên, phạm vi hoặc tham chiếu ô được mã hóa cứng vào mã này ngoại trừ việc di chuyển con trỏ sang ô A1 ở cuối mã. Mã này được thiết kế để có được tất cả thông tin cần thiết từ tọa độ ô mà người dùng đã nhấp đúp vào và kích thước của phạm vi dữ liệu bảng.

Không quan trọng phạm vi dữ liệu dạng bảng lớn như thế nào. Mã vẫn sẽ nhận tất cả các thông tin cần thiết và nó có thể được sử dụng trên dữ liệu được lưu giữ ở bất cứ đâu trong sổ làm việc của bạn mà không cần phải mã hóa trong các giá trị.

Giả định duy nhất được thực hiện là có một hàng tiêu đề trong dữ liệu bảng và phạm vi dữ liệu bắt đầu tại ô A1, nhưng vị trí bắt đầu cho phạm vi dữ liệu có thể dễ dàng thay đổi trong mã.

Bất kỳ người dùng sẽ được ấn tượng phù hợp với chức năng phân loại mới này!

Lập trình VBA | Bộ tạo mã không hoạt động cho bạn!

Mở rộng chức năng sắp xếp bằng VBA

Microsoft đã cho phép linh hoạt rất lớn trong việc phân loại bằng một loạt các tham số. Tuy nhiên, trong VBA, bạn có thể đưa điều này đi xa hơn.

Giả sử rằng bạn muốn sắp xếp bất kỳ giá trị nào với một phông chữ đậm lên đầu dữ liệu của bạn. Không có cách nào để làm điều này trong Excel, nhưng bạn có thể viết mã VBA để làm điều đó:

ActiveSheet.Range["Your_Range_Value"].AutoFilter Field:=1
8

Mã này hoạt động kích thước của phạm vi dữ liệu bảng bằng cách sử dụng đối tượng ’sử dụng và sau đó lặp qua tất cả các hàng trong đó. Khi một phông chữ đậm được tìm thấy, số 0 hàng đầu được đặt trước giá trị ô.

Một loại sau đó diễn ra. Vì loại theo thứ tự tăng dần, bất cứ thứ gì có số 0 ở phía trước sẽ lên đầu danh sách.

Mã sau đó lặp qua tất cả các hàng và xóa các số 0 hàng đầu, khôi phục dữ liệu về các giá trị ban đầu của nó.

Mã này sắp xếp bằng cách sử dụng các phông chữ đậm làm tiêu chí, nhưng bạn có thể dễ dàng sử dụng các đặc điểm tế bào khác theo cùng một cách, ví dụ, phông chữ chữ in nghiêng, kích thước điểm của văn bản, chữ dưới, tên phông chữ, v.v.

Làm cách nào để xóa các bộ lọc trong Excel VBA?

Để xóa các bộ lọc trên một cột duy nhất, chúng tôi sử dụng phương thức Autofilter. Chúng tôi chỉ tham chiếu tham số trường và đặt giá trị thành số của cột chúng tôi muốn xóa. Trường là số cột của phạm vi mà các bộ lọc được áp dụng, không phải là số cột của bảng tính.use the AutoFilter method. We only reference the Field parameter and set the value to the number of the column we want to clear. The Field is the column number of the range the filters are applied to, NOT the column number of the worksheet.

Sortfields rõ ràng là gì?

Sắp xếp.Xóa xóa thông tin chính sắp xếp trước.Nếu bạn không rời khỏi Sortfields.Rõ ràng, bạn sẽ tiếp tục thêm các điều kiện chính sắp xếp.Vì vậy, lần đầu tiên thông qua, bạn sẽ có hai phím sắp xếp, lần thứ hai qua, bạn sẽ có bốn phím.clears out previous sort key information. If you don't leave SortFields. Clear, you will continue to add sort key conditions. So, the first time through, you'll have two sort keys, the second time through, you'll have four.

Làm thế nào để bạn loại bỏ các trường sắp xếp trong excel?

Chuyển đến Ribbon dữ liệu và nhấp vào biểu tượng rõ ràng trong nhóm Sắp xếp & Bộ lọc.Chuyển đến Ribbon nhà, nhấp vào mũi tên bên dưới biểu tượng Sắp xếp & Bộ lọc trong nhóm chỉnh sửa và chọn Xóa.. Go to the Home ribbon, click the arrow below the Sort & Filter icon in the Editing group and choose Clear.

Làm thế nào để bạn tùy chỉnh sắp xếp trong Excel VBA?

Excel sắp xếp tùy chỉnh với Excel VBA..
Nhấp vào biểu tượng sắp xếp tùy chỉnh.Điều này sẽ đưa bạn đến hộp thoại sau ..
Ở bên phải của màn hình, chọn danh sách tùy chỉnh ....
Nhấp vào nút Chỉnh sửa danh sách tùy chỉnh ..
Quy trình VBA Excel sau đây phác thảo loại tùy chỉnh ..

Bài Viết Liên Quan

Chủ Đề