Board logo

標題: [發問] 請問關於自動篩選使用陣列方式要如何修改 [打印本頁]

作者: freeffly    時間: 2012-12-20 13:44     標題: 請問關於自動篩選使用陣列方式要如何修改

我想要再庫別那一欄中尋找包含B,C,D,E等字眼的然後再品質那一欄輸入對應的B,C,D,E
是了幾次都沒辦法成功
請問下面要如何修改?
  1. Sub 品質_後來的()
  2. n = Range("AG65536").End(xlUp).Offset(1).Row
  3. x = Range("A65536").End(xlUp).Row
  4. w = Array("*B*", "*C*", "*D*", "*E*")
  5. y = Array("B", "C", "D", "E")
  6. Selection.AutoFilter Field:=33, Criteria1:="="
  7. For i = LBound(w) To UBound(w)
  8. Selection.AutoFilter Field:=14, Criteria1:="=w(i)"
  9. Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "" & y(i) & ""
  10. Next
  11. Selection.AutoFilter Field:=14
  12. Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
  13. Selection.AutoFilter Field:=33
  14. End Sub
複製代碼
  1. Sub 品質_原先的()
  2. n = Range("AG65536").End(xlUp).Offset(1).Row
  3. x = Range("A65536").End(xlUp).Row
  4. w= Array("B", "C", "D", "E")
  5. Selection.AutoFilter Field:=33, Criteria1:="="
  6. For i = LBound(w) To UBound(w)
  7. Selection.AutoFilter Field:=14, Criteria1:="="* "& w(i) &""
  8. Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "" & w(i) & ""
  9. Next
  10. Selection.AutoFilter Field:=14
  11. Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
  12. Selection.AutoFilter Field:=33
  13. End Sub
複製代碼
[attach]13620[/attach]
作者: freeffly    時間: 2012-12-20 13:51

試出來了
不過我想要讓下面這兩句用一句寫就好
要如何改?
w = Array("*B*", "*C*", "*D*", "*E*")
y = Array("B", "C", "D", "E")
  1. Sub 品質()
  2. n = Range("AG65536").End(xlUp).Offset(1).Row
  3. x = Range("A65536").End(xlUp).Row
  4. w = Array("*B*", "*C*", "*D*", "*E*")
  5. y = Array("B", "C", "D", "E")
  6. Selection.AutoFilter Field:=33, Criteria1:="="
  7. For i = LBound(w) To UBound(w)
  8. Selection.AutoFilter Field:=14, Criteria1:="=" & w(i) & ""
  9. Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "" & y(i) & ""
  10. Next
  11. Selection.AutoFilter Field:=14
  12. Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
  13. Selection.AutoFilter Field:=33
  14. End Sub
複製代碼

作者: stillfish00    時間: 2012-12-20 15:49

本帖最後由 stillfish00 於 2012-12-20 15:50 編輯

回復 2# freeffly
  1. Sub 品質()
  2.     n = Range("AG65536").End(xlUp).Offset(1).Row
  3.     x = Range("A65536").End(xlUp).Row
  4.     w = Array("B", "C", "D", "E")
  5.    
  6.     Selection.AutoFilter Field:=33, Criteria1:="="
  7.     For i = LBound(w) To UBound(w)
  8.     Selection.AutoFilter Field:=14, Criteria1:="=*" & w(i) & "*"
  9.     Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = w(i)
  10.     Next
  11.     Selection.AutoFilter Field:=14
  12.     Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
  13.     Selection.AutoFilter Field:=33
  14. End Sub
複製代碼

作者: GBKEE    時間: 2012-12-20 16:04

回復 2# freeffly
  1. Option Explicit
  2. Sub Ex()
  3.     Dim E As Range, W As Variant
  4.     For Each E In Range("N2", Range("N" & Rows.Count).End(xlUp))
  5.         For Each W In Array("*B*", "*C*", "*D*", "*E*")
  6.             If E Like W Then Cells(E.Row, "AG") = Replace(W, "*", "")
  7.         Next
  8.     Next
  9. End Sub
複製代碼

作者: freeffly    時間: 2012-12-20 16:22

回復 3# stillfish00

    可以使用
    跟我理解的依樣
   好像有寫過一樣的程式碼(除了上面附的)
   可是已經蓋過所以也不知道差在哪
   謝謝
作者: freeffly    時間: 2012-12-20 16:24

回復 4# GBKEE


    謝謝版主 原來也有這種方式
   學習了
作者: stillfish00    時間: 2012-12-20 18:42

回復 5# freeffly
只是把你#1
品質_原先的()
第7行改正而已




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)