- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
本帖最後由 GBKEE 於 2012-6-8 16:44 編輯
回復 1# yueh0720 - Option Explicit
- Sub Ex()
- Dim Ar(), xl As Integer
- With Sheets(1) '第1個工作表
- .AutoFilterMode = False '取消 這工作表的自動篩選
- Ar = .Range("A1").CurrentRegion.Value '資料轉入陣列
- .Range("A1").CurrentRegion.Sort Key1:=.Range("H2"), Order1:=xlAscending, Key2:=.Range( _
- "A2"), Order2:=xlAscending, Header:=xlYes '排序
- .Range("IV:IV") = "" '清除IV欄資料
- .Columns("H:H").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("IV1"), CriteriaRange:=.Range("IU1:IU2"), Unique:=True
- 'AdvancedFilter 進階篩選: H欄不重複資料 篩選到.Range("IV1")
- xl = 2 '從 第2列 開始
- Do While .Range("IV" & xl) <> "" '條件成立: 執行迴圈
- If Sheets.Count < xl Then Sheets.Add , Sheets(Sheets.Count) '工作表數小於xl:新增工作表
- .Range("A1").AutoFilter Field:=8, Criteria1:=.Range("IV" & xl) '自動篩選: 第8欄=.Range("IV" & xl)
- .Range("A1").CurrentRegion.SpecialCells(xlCellTypeConstants).Copy Sheets(xl).[A1] '篩選到的資料:複製到 指定工作表的[A1]
- xl = xl + 1 '從第2列: 往下一列
- Loop
- .AutoFilterMode = False
- .Range("A1").CurrentRegion.Value = Ar '取出陣列資料 置回
- End With
- End Sub
複製代碼 |
|