Filter 數組過濾函數精解示例
'*************************************************************************
'**模 塊 名:Filter 數組過濾函數精解示例
'**說 明:藍鳳凰設計商城 浴火鳳凰-郭衛 | 藍鳳凰-魔靈 | 郭衛-icecept
'**創 建 人:浴火鳳凰-郭衛
'**日 期:2015年10月11日 13:38:55
'**修 改 人:浴火鳳凰-郭衛
'**日 期:
'**描 述:QQ:493405998 | 微信\旺旺:icecept
'**版 本:V1.0.0 | http://blog.sina.com.cn/icecept
'*************************************************************************
'●用法:傳回數組 = Filter(原始數組, 要找的文本, [如果是包含則為TRUE,否則為FALSE.默認為True], [比較方式])
'●語法 Filter(InputStrings, Value[, Include[, Compare]])
'特別注意:Filter函數是按字符串來比較數組及搜索對象的,而且是按是否具有包含關系而不是相等關系來判斷的。
Private Sub Command4_Click()
Dim aa As Variant, bb() As String, prt As Variant
aa = Array("藍鳳凰", "浴火鳳凰", "魔靈", "郭衛", "icecept", "龍浩晨", "圣采兒", "周維青", "上官冰兒", "上官菲兒", "上官雪兒", "巫月寒", "東方寒月")
bb = Filter(aa, Text1.Text, False) '顯示不包含文本框輸入內容的所有項目
For Each prt In bb
Debug.Print prt,
Next
Debug.Print
End Sub
Private Sub Command5_Click()
Dim Arr
Arr = Array(1, 2, 3, 4, 5, 6, 11, 13, 15, 11, 2, 3, 5)
Debug.Print "原數組:" & Join(Arr, ",") & vbCrLf
'true 顯示包含1的項,False顯示不包含1的項,如果省略此項默認為true
x = Filter(Arr, 1, False)
Debug.Print "不包含1的數組:" & Join(x, ",")
'原數組:1,2,3,4,5,6,11,13,15,11,2,3,5
'
'不包含1的數組:2,3,4,5,6,2,3,5
End Sub
Private Sub Form_Load()
Me.Show
Dim x(2)
x(0) = "kjwang"
x(1) = "wangkj"
x(2) = "peter"
'第三項不寫默認為True,True 顯示包含有kj的項 Flase 顯示不包含kj的項
v = Filter(x, "kj")
Print v(0), v(1)
'vbTextCompare 忽略大小寫,默認(vbTextCompare)是區分大小寫
v = Filter(x, "kj", False)
Print v(0)
End Sub
Private Sub Command2_Click()
Dim aa(10) As String
Dim bb() As String
Dim i As Integer
For i = 0 To 9
If i Mod 2 = 0 Then
aa(i) = "aa" & Str$(i)
Else
aa(i) = "bb" & Str$(i)
End If
Next i
'True 顯示數組中包含aa的項
bb = Filter(aa, "aa", True)
'Flase 顯示數組中不包含aa的項
' bb = Filter(aa, "aa", False)
Debug.Print Join(bb, ",")
End Sub
Private Sub Command1_Click()
Dim Arr
Arr = Array(1, 2, 3, 4, 5, 6, 21, 13, 15, 12, 25, 3, 5)
Debug.Print "原數組:" & Join(Arr, ",") & vbCrLf
'true 顯示包含2的項,False顯示不包含2的項,如果省略此項默認為true
x = Filter(Arr, 2, True)
Debug.Print "包含2的數組:" & Join(x, ",")
'原數組:1,2,3,4,5,6,21,13,15,12,25,3,5
'
'包含2的數組:2,21,12,25
End Sub
Private Sub Command3_Click()
Dim b() As String
Dim a(60) As String
Dim i As Integer
For i = 0 To 60
a(i) = CStr(i)
Next i
Debug.Print "原數組:" & Join(a, ",") & vbCrLf
'True,只把包含5的元素附給B數組
b = Filter(a, 5, True)
Debug.Print "包含5的數組:" & Join(b, ",")
' 原數組:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60
'
' 只包含5的數組:5,15,25,35,45,50,51,52,53,54,55,56,57,58,59
End Sub

浙公網安備 33010602011771號