- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
本帖最後由 GBKEE 於 2013-5-12 21:36 編輯
回復 5# sunnyso
你的程式改用自動篩選 試試看- Option Explicit
- Private Sub Worksheet_Activate()
- Dim Sh As Worksheet, E As Integer
- Application.ScreenUpdating = False
- Application.EnableEvents = False
- AutoFilterMode = False
- E = Cells(Rows.Count, "A").End(xlUp).Row
- E = IIF(E = 5, 6, E)
- Range("A6:E" & E).Clear
- For Each Sh In Sheets(Array("DataSheet2", "DataSheet3", "DataSheet3"))
- Sh.UsedRange.Offset(1).Copy Cells(Cells(Rows.Count, "A").End(xlUp).Row + 1, "A") '合併資料
- Next
- E = Cells(Rows.Count, "A").End(xlUp).Row
- Range("A5:E" & E).AutoFilter '範圍設立,自動篩選.
- For E = 1 To 5
- Range("A5").AutoFilter E, , , , False '自動篩選: 取消箭頭
- Next
- Application.EnableEvents = True
- Application.ScreenUpdating = True
- End Sub
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim M As Variant
- Application.EnableEvents = False
- If Target.Row = 4 And Target.Column <= 5 Then
- M = Split(Target, "#")
- If UBound(M) >= 1 Then '
- '自動篩選: 在關鍵字詞前加入【#】將以OR來篩選該欄。
- Range("A5").AutoFilter Target.Column, "=*" & M(0) & "*", xlOr, "=*" & M(1) & "*"
- Else
- Range("A5").AutoFilter Target.Column, "=*" & Target & "*"
- End If
- End If
- Application.EnableEvents = True
- End Sub
- Private Sub Worksheet_SelectionChange(ByVal Target As Range) '第4列輸入後返回第4列
- Application.EnableEvents = False
- If Target.Row = 5 And Target.Column <= 5 Then
- Selection.Offset(-1).Select 'Target.Offset(-1).Select
- End If
- Application.EnableEvents = True
- End Sub
複製代碼 |
|