想要用VBA統(tǒng)計查找數(shù)組中特定元素的出現(xiàn)次數(shù),,通常我們可能想到的就是用for循環(huán)遍歷數(shù)組,,并設(shè)定一個計數(shù)變量,,每遇到一次指定的元素計數(shù)變量便加1,遍歷完數(shù)組就得到該元素的出現(xiàn)次數(shù),,但其實還有更快捷的方法,,以下舉例在數(shù)組【"西瓜", "葡萄", "香蕉", "香蕉", "葡萄", "香蕉"】中,查找“香蕉”的出現(xiàn)次數(shù): Sub 統(tǒng)計數(shù)組某元素出現(xiàn)的次數(shù)() MyArray = Array("西瓜", "葡萄", "香蕉", "香蕉", "葡萄", "香蕉") MsgBox Application.Count(Application.Match(MyArray, Array("香蕉"), 0)) End Sub 以上代碼中,,用到了match查找函數(shù)和Count統(tǒng)計數(shù)字函數(shù),。 match查找函數(shù)的作用,是查找一個值在數(shù)組中的位置,,將該值所在數(shù)組中的位置返回,,如果該查找值不在數(shù)組內(nèi),則會返回錯誤,。 所以將MyArray數(shù)組里的值作為查找值,,用“Application.Match(查找值, Array("香蕉"), 0)”,就能判斷查找值是不是“香蕉”,,是則返回1,不是則返回錯誤值#N/A 但光能判斷一個值還不夠,,想要判斷MyArray所有值,,就要用到match查找函數(shù)的另一個特點:它的第1個參數(shù)“查找值”可以是數(shù)組。 如果“查找值”是數(shù)組,,那么返回的結(jié)果也會是數(shù)組形式,,所以用“Application.Match(MyArray, Array("香蕉"), 0)”,就能返回MyArray數(shù)組每個值對應(yīng)的查找結(jié)果,,形成數(shù)組{錯誤值,錯誤值,1,1,錯誤值,1} 此時返回的數(shù)組就可用Count函數(shù),,統(tǒng)計該數(shù)組中包含數(shù)字的元素個數(shù),就可得到MyArray數(shù)組中“香蕉”元素出現(xiàn)的次數(shù),,也就是以上代碼返回的結(jié)果“3”,。 本文的分享到此結(jié)束,如果此文對您有幫助歡迎分享或轉(zhuǎn)藏,,避免以后找不到,。想要了解更多VBA相關(guān)知識,歡迎到http://moqingyan.360doc.com我的個人圖書館查看,。 |
|