返回列表 上一主題 發帖

關於寫巨集程式自動篩選判斷區的代碼複製成該代碼單獨活頁簿

篩選法!!!

Sub Macro1()
Dim xArea As Range, i&, T$, TT$, Sht As Worksheet
Set xArea = Range([B4], Cells(Rows.Count, "B").End(xlUp)(1, 4))
For i = 2 To xArea.Rows.Count
  T = xArea(i, 1): Set Sht = Nothing
  If T = "" Or InStr(TT & "/", "/" & T & "/") Then GoTo 101
  On Error Resume Next:   Set Sht = Sheets(T):  On Error GoTo 0
  If Sht Is Nothing Then Set Sht = Sheets.Add(After:=Sheets(Sheets.Count))
  Sht.Name = T: Sht.UsedRange.Clear
  With xArea
    .Parent.Select
    .AutoFilter Field:=1, Criteria1:=T
    .Copy Sht.[B4]
  End With
  TT = TT & "/" & T
101: Next i
ActiveSheet.AutoFilterMode = False
End Sub

TOP

本帖最後由 准提部林 於 2016-2-22 12:06 編輯

回復 15# lpk187


完全正確, 謝謝大出力解釋!

InStr(TT & "/", "/" & T & "/") 用"/'分隔,可以清楚分別 A AA AAA 或 A1 A11 A111,而不會誤判!!
而且理論上,工作表名稱不會有"/"字元,若用其它符號,就要考慮工作表表名稱是否含有這個符號,
例如:用"-"分隔,就可能對 1-1   1-11   1-111  相似工作表誤判!!

TOP

回復 24# 千暉尋


哈!這是加深記憶的方法,
學vba,從錯誤中去修正,是好方法的!!!

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題