Anh Trung Chinh nói đúng. Sau đây là đoạn code record được khi sort 1 vùng chọn trước:
Đoạn code ghi bằng 2003 chạy được trong 2007 và 2010, nhưng đoạn code ghi bằng 2010 không chạy được trong 2003, báo lỗi ngay dòng đầu tiên.
Mà rõ ràng là đoạn code 2003 dễ nhớ và có thể tự viết tay được, chỉ dùng vài tham số cần thiết:
hoa còi:
Đoạn code Macro2003() và đoạn code SortData() chạy ngon lành trong 2010, mà không cần khai báo ActiveSheet.Range(...)
PHP:
Sub Macro2010()
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1:B10") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:C10")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
PHP:
Sub macro2003()
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Đoạn code ghi bằng 2003 chạy được trong 2007 và 2010, nhưng đoạn code ghi bằng 2010 không chạy được trong 2003, báo lỗi ngay dòng đầu tiên.
Mà rõ ràng là đoạn code 2003 dễ nhớ và có thể tự viết tay được, chỉ dùng vài tham số cần thiết:
PHP:
Sub SortData()
Range("A1:C15").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo
End Sub
hoa còi:
Đoạn code Macro2003() và đoạn code SortData() chạy ngon lành trong 2010, mà không cần khai báo ActiveSheet.Range(...)
Lần chỉnh sửa cuối: