- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
7#
發表於 2012-12-25 12:45
| 只看該作者
回復 6# alltest
自動篩選:- Sub Ex()
- Dim E As Variant, r As Integer, xi As Integer
- Dim Rng(1 To 2)
- With Workbooks("book1.xls").Sheets("異常明細")
- .AutoFilterMode = False
- For Each E In Array("黃色", "紅色", "青色")
- .Range("A2", .UsedRange.SpecialCells(xlCellTypeLastCell).Address).AutoFilter Field:=2, Criteria1:=E
- xi = .Cells(Rows.Count, 2).End(xlUp).Row
- For r = 5 To .Cells(1, .Columns.Count).End(xlToLeft).Column Step 3
- Set Rng(1) = .Range("b1:d" & xi)
- Set Rng(2) = .Range(.Cells(1, r).Resize(, 3).Address & ":" & .Cells(xi, r + 2).Address)
- Set Rng(1) = Union(Rng(1), Rng(2))
- With Workbooks("book2.xls").Sheets(E & "-" & .Cells(1, r))
- .Cells.Clear
- Rng(1).Copy .[A1]
- End With
- Next
- Next
- .AutoFilterMode = False
- End With
- End Sub
複製代碼- Sub Ex1() '新增活頁簿
- Dim E As Variant, r As Integer, xi As Integer
- Dim Rng(1 To 2), Wb As Workbook
- Set Wb = Workbooks.Add(1) '新增活頁簿
- With Workbooks("book1.xls").Sheets("異常明細")
- .AutoFilterMode = False
- For Each E In Array("黃色", "紅色", "青色")
- .Range("A2", .UsedRange.SpecialCells(xlCellTypeLastCell).Address).AutoFilter Field:=2, Criteria1:=E
- xi = .Cells(Rows.Count, 2).End(xlUp).Row
- For r = 5 To .Cells(1, .Columns.Count).End(xlToLeft).Column Step 3
- Set Rng(1) = .Range("b1:d" & xi)
- Set Rng(2) = .Range(.Cells(1, r).Resize(, 3).Address & ":" & .Cells(xi, r + 2).Address)
- Set Rng(1) = Union(Rng(1), Rng(2))
- Wb.Sheets.Add(, Sheets(Sheets.Count)).Name = E & "-" & .Cells(1, r) '新增工作表:命名
- Rng(1).Copy ActiveSheet.[A1]
- Next
- Next
- .AutoFilterMode = False
- End With
- End Sub
複製代碼 |
|