標題:
[發問]
進階篩選
[打印本頁]
作者:
fashionable3000
時間:
2015-8-26 19:27
標題:
進階篩選
[attach]21809[/attach]
Range("A2:A6").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("B2:B3"), CopyToRange:=Range("C2:C2"), Unique:=False
vba用這條,裡面的結果都有我不要的,請問要如何修改才能完全相符?
也就是上面只找到A0020,下面只找到20。
用一般篩選是可以做到,可是速度有點緩慢,欣賞進階篩選的速度,但是這結果不太好。
題外話:常常第一次執行vba(xx.show),剛顯示出來就掛了,只要重開就能正常執行,請問可能的原因是?
作者:
Hsieh
時間:
2015-8-26 22:49
回復
1#
fashionable3000
[attach]21810[/attach]
作者:
fashionable3000
時間:
2015-8-26 23:18
您好,我的那條語法就是從那個視窗錄製的
不過那個視窗沒有"完全符合"或是"部分符合"這種選項
所以會找到比預期還多的資料。
作者:
Scott090
時間:
2015-8-27 10:28
回復
3#
fashionable3000
在 B3 鍵入 ="=A0020" 使 儲存格 B3 顯示 =A0020
試試看
作者:
fashionable3000
時間:
2015-8-27 12:19
回復
4#
Scott090
[attach]21812[/attach]
結果好像還是一樣:(
或是可以問進階篩選的原理嗎?
Dim i%, j%
i = 3
j = 3
Do Until Range("a" & i) = ""
If Range("a" & i) = Range("b" & 3) Then
Range("c" & j) = Range("a" & i)
j = j + 1
End If
i = i + 1
Loop
雖然這樣也是可以達成,不過當10000筆以上,速度跟進階篩選完全不能比。
作者:
Scott090
時間:
2015-8-27 15:43
回復
5#
fashionable3000
參考 4#, 請注意:儲存格 B3 要打入 ="=A0020" ,格子內要看到 =A0020
不要只打入 ="A0020" 而看到 A0020 在格子裡面
[attach]21825[/attach]
Sub test1()
Range("A2:A6").AdvancedFilter _
Action:=xlFilterCopy, _
criteriarange:=Range("B2:B3"), _
copytorange:=Range("C2:C6"), _
unique:=False
End Sub
Sub test2()
Range("A10:A14").AdvancedFilter _
Action:=xlFilterCopy, _
criteriarange:=Range("B10:B11"), _
copytorange:=Range("C10:C10"), _
unique:=False
End Sub
複製代碼
一般 "準則" 橫向列 (Row)儲存格內放 "AND" ,縱向行(Column)儲存格內放 "Or";
可以使用 =, <,<=,>,>=, * ,
以下儲存格的準則 是 cells(18,"B") or cells(19,"B")
A B C
17 ID ID ID
18 A0020 =A0020 A0020
19 A0020A =*B A0020B
20 A0020B
21 AA0020
Sub test3()
Range("A17:A21").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("B17:B19"), _
CopyToRange:=Range("C17"), _
Unique:=False
End Sub
複製代碼
作者:
fashionable3000
時間:
2015-8-28 08:34
回復
6#
Scott090
謝謝指導,這樣我會了,感激不盡!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)