返回列表 上一主題 發帖

Sorting程式碼不能執行

Sorting程式碼不能執行

您好:

有關sorting,想請教如下程序,為什麼不能執行?左看右看就是看不出有誤?請前輩指導解惑。檔案如附。

Sub SortData()
    Range("A1").Sort Key1:=Cells(1, 4), Order1:=xlAscending, Key2:=Cells(1, 6), Order2:=xlAscending, Header:=xlYes
End Sub

stevenliu Sorting.rar (14.67 KB)
Engr<i>[12]<strong>

回復 12# stevenliu555


   可能是對於一般使用者來說,在滑鼠操作的介面功能變的超強大,超簡便,
   但是相對的,程式語言也就變的更複雜了。猜的啦…

TOP

感謝10#, 11#的教導,真的可以耶。
但是,我還是有點質疑,為什麼EXCEL 2007、2010程式碼會變得複雜,反而難用,不解。
Engr<i>[12]<strong>

TOP

回復 6# stevenliu555
回復 10# owen06
的確在 2003 與 2007、2010 上表達是有些微的差異性,
多謝 owen06 大大的用心!
  1. Sub Ex()
  2.     With Sheets("會員名冊").Sort
  3.         .SortFields.Clear
  4.         .SetRange Range("A1:J31")
  5.         .SortFields.Add Key:=Range("D2"), Order:=xlAscending        '先以D2遞增排序
  6.         .SortFields.Add Key:=Range("F2"), Order:=xlAscending        '先以F2遞增排序
  7.         .Header = xlYes
  8.         .Apply
  9.     End With
  10. End Sub
複製代碼

TOP

回復 6# stevenliu555

我剛用2007錄製出來,再一個一個慢慢刪,最精簡似乎就一定要這樣了,再簡下去就不能執行了,還挺麻煩的@@
  1. Sub sortdata()
  2. Sheets("會員名冊").Sort.SortFields.Clear
  3. Sheets("會員名冊").Sort.SortFields.Add Key:=Range("D2"), Order:=xlAscending        '先以D2遞增排序
  4. Sheets("會員名冊").Sort.SortFields.Add Key:=Range("F2"), Order:=xlAscending         '再以F2遞增排序
  5.    With Sheets("會員名冊").Sort
  6.      .SetRange Range("A1:J31")
  7.      .Header = xlYes
  8.      .Apply
  9.     End With
  10. End Sub
複製代碼

TOP

回復 8# GBKEE
Same Error as shown on 3#.

TOP

回復 6# stevenliu555
試試看,是否可行(我沒有2007)
  1. Sub SortData()
  2.     Range("A1").Sort Key1:=Range("D1"), Order1:=xlAscending, Key2:=Range("F1"), Order2:=xlAscending, Header:=xlYes
  3. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# stevenliu555


你可以先直接用錄製的功能讓他幫你寫好內容,然後再自己去把多餘的累贅刪掉,這樣比較不會有相容性的問題。

TOP

我的EXCEL是2007,執行結果與c_c_lai一樣,如果要用於EXCEL2007,請問該如何更改?謝謝。
Engr<i>[12]<strong>

TOP

回復 4# owen06
這種相容性問題是非常令人困擾的,有些在2003能執行的未必相容於 2007、2010。

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題