標題:
[發問]
請問關於自動篩選使用陣列方式要如何修改
[打印本頁]
作者:
freeffly
時間:
2012-12-20 13:44
標題:
請問關於自動篩選使用陣列方式要如何修改
我想要再庫別那一欄中尋找
包含
B,C,D,E等字眼的然後再品質那一欄輸入對應的B,C,D,E
是了幾次都沒辦法成功
請問下面要如何修改?
Sub 品質_後來的()
n = Range("AG65536").End(xlUp).Offset(1).Row
x = Range("A65536").End(xlUp).Row
w = Array("*B*", "*C*", "*D*", "*E*")
y = Array("B", "C", "D", "E")
Selection.AutoFilter Field:=33, Criteria1:="="
For i = LBound(w) To UBound(w)
Selection.AutoFilter Field:=14, Criteria1:="=w(i)"
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "" & y(i) & ""
Next
Selection.AutoFilter Field:=14
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
Selection.AutoFilter Field:=33
End Sub
複製代碼
Sub 品質_原先的()
n = Range("AG65536").End(xlUp).Offset(1).Row
x = Range("A65536").End(xlUp).Row
w= Array("B", "C", "D", "E")
Selection.AutoFilter Field:=33, Criteria1:="="
For i = LBound(w) To UBound(w)
Selection.AutoFilter Field:=14, Criteria1:="="* "& w(i) &""
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "" & w(i) & ""
Next
Selection.AutoFilter Field:=14
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
Selection.AutoFilter Field:=33
End Sub
複製代碼
[attach]13620[/attach]
作者:
freeffly
時間:
2012-12-20 13:51
試出來了
不過我想要讓下面這兩句用一句寫就好
要如何改?
w = Array("*B*", "*C*", "*D*", "*E*")
y = Array("B", "C", "D", "E")
Sub 品質()
n = Range("AG65536").End(xlUp).Offset(1).Row
x = Range("A65536").End(xlUp).Row
w = Array("*B*", "*C*", "*D*", "*E*")
y = Array("B", "C", "D", "E")
Selection.AutoFilter Field:=33, Criteria1:="="
For i = LBound(w) To UBound(w)
Selection.AutoFilter Field:=14, Criteria1:="=" & w(i) & ""
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "" & y(i) & ""
Next
Selection.AutoFilter Field:=14
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
Selection.AutoFilter Field:=33
End Sub
複製代碼
作者:
stillfish00
時間:
2012-12-20 15:49
本帖最後由 stillfish00 於 2012-12-20 15:50 編輯
回復
2#
freeffly
Sub 品質()
n = Range("AG65536").End(xlUp).Offset(1).Row
x = Range("A65536").End(xlUp).Row
w = Array("B", "C", "D", "E")
Selection.AutoFilter Field:=33, Criteria1:="="
For i = LBound(w) To UBound(w)
Selection.AutoFilter Field:=14, Criteria1:="=*" & w(i) & "*"
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = w(i)
Next
Selection.AutoFilter Field:=14
Range(Cells(n, "AG"), Cells(x, "AG")).SpecialCells(xlCellTypeVisible) = "A"
Selection.AutoFilter Field:=33
End Sub
複製代碼
作者:
GBKEE
時間:
2012-12-20 16:04
回復
2#
freeffly
Option Explicit
Sub Ex()
Dim E As Range, W As Variant
For Each E In Range("N2", Range("N" & Rows.Count).End(xlUp))
For Each W In Array("*B*", "*C*", "*D*", "*E*")
If E Like W Then Cells(E.Row, "AG") = Replace(W, "*", "")
Next
Next
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/)