返回列表 上一主題 發帖

[發問] excel 自動篩選依照另外一個工作表的內容

回復 1# ljuber
試試看:
  1. Option Explicit

  2. Sub Ex()
  3.     Dim loc As Long, cts As Long, txtFile As String, arr() As String, sp() As String
  4.    
  5.     Application.DisplayAlerts = False
  6.     Application.ScreenUpdating = False
  7.    
  8.     txtFile = Application.GetOpenFilename("(*.txt), *.txt")
  9.     If txtFile = "" Then Exit Sub
  10.    
  11.     sp = Split(txtFile, "\")
  12.     With Workbooks("練習.xlsm")
  13.         cts = .Sheets("設定").Range("A1").End(xlDown).Row
  14.         
  15.         ReDim Preserve arr(cts - 1)       '  動態地處理 arr 陣列帶入之陣列值。
  16.         For loc = 2 To cts
  17.            arr(loc - 1) = .Sheets("設定").Range("A" & loc).Text   '
  18.         Next loc
  19.         
  20.         loc = .Sheets("資料").Range("A1").End(xlDown).Row
  21.         '  Workbooks.OpenText Filename:=ThisWorkbook.Path & "\10412-ai201.txt", Origin:=950, Tab:=True, TrailingMinusNumbers:=True
  22.         Workbooks.OpenText Filename:=txtFile, Origin:=950, Tab:=True, TrailingMinusNumbers:=True
  23.       
  24.         ActiveSheet.Range("A:G").AutoFilter Field:=5, _
  25.             Criteria1:=arr, Operator:=xlFilterValues
  26.             '  動態地處理 Criteria1 帶入之值。
  27.             '  Criteria1:=Array("11001", "11005", "11009"), Operator:=xlFilterValues
  28.         Columns("A:G").Copy
  29.         .Sheets("資料").Range("A" & loc + 1).PasteSpecial Paste:=xlPasteValues
  30.         
  31.         '  Workbooks("10412-ai201.txt").Close
  32.         Workbooks(sp(UBound(sp))).Close
  33.         '  .Sheets("資料").Range("A" & loc + 1).Select
  34.     End With
  35. End Sub
複製代碼

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題