获取某一列_Excel VBA 8.2 获取多列唯一值,不用肉眼,VBA帮你快速搞定
前景提要(文末提供源碼下載)
昨天我們學(xué)習(xí)了針對單列的數(shù)據(jù)進(jìn)行獲取唯一值的方法,今天我們提升下難度,來嘗試下獲取已多列為參照物,獲取唯一值的方法,昨天有很多小伙伴說還可以用字典的方法更加的簡單,其實(shí),針對這個(gè)問題,我還是那句話,方法無絕對,多學(xué)點(diǎn)終究是好的,針對獲取唯一值的方法,我后續(xù)幾天會(huì)展開至少3種方法,大家可以選擇自己喜歡的方法來玩。
場景說明
很明顯今天的問題,我們無法用常規(guī)的去重的方式來實(shí)現(xiàn)了,因?yàn)槿ブ氐姆绞街荒茚槍δ骋涣械纳舷挛倪M(jìn)行操作的,現(xiàn)在我們的操作對象并不僅僅是一列,而是兩列,甚至可能是不相鄰的兩列,也可能是三列。
這就是我們今天構(gòu)造的模擬數(shù)據(jù)源,我們來看看今天的效果要如何實(shí)現(xiàn)
代碼區(qū)
多列取唯一值,在我們?nèi)粘5墓ぷ髦写_實(shí)是比較常見的操作,但是牽涉到多列的數(shù)據(jù),是不是操作起來非常的困難呢?,其實(shí)并不會(huì)很難,我們來看看今天的代碼
Sub test()Dim l&l = Cells(Rows.Count, 1).End(xlUp).RowWith Range(Cells(1, 1), Cells(l, 3)) .RemoveDuplicates Columns:=Array(1, 2), Header:=xlYesEnd WithEnd Sub是不是很簡單,和上節(jié)的代碼有很多地方都是非常的相似的,但是又有一些地方不相同
其實(shí)我們使用的方式還是我們上節(jié)學(xué)習(xí)過的RemoveDuplicates的方法
先來看看最終的結(jié)果是怎么樣的
如果我們希望的是不連續(xù)的兩行是否能夠?qū)崿F(xiàn)呢?
來實(shí)現(xiàn)下,我們現(xiàn)在希望在A-C兩列之間進(jìn)行取唯一值的操作
Sub test1()Dim l&l = Cells(Rows.Count, 1).End(xlUp).RowWith Range(Cells(1, 1), Cells(l, 5)) .RemoveDuplicates Columns:=Array(1, 3), Header:=xlYesEnd WithEnd Sub代碼是稍微有一些點(diǎn)修改的,我們一會(huì)來講述下。
從上面的兩個(gè)動(dòng)圖,我們可以看出來,上面的代碼完全滿足了我們的需求,那么今天我們來繼續(xù)深入學(xué)習(xí)下RemoveDuplicates方法
代碼解析
前面我們也說了,今天的功能的關(guān)鍵代碼還是RemoveDuplicates方法的運(yùn)用,上節(jié)我們學(xué)習(xí)了RemoveDuplicates在單列取唯一值的時(shí)候的運(yùn)用,在今天的多列的取唯一值的需求中,依然能夠用到RemoveDuplicates
其實(shí)我們昨天留下了一個(gè)小的伏筆,
那么針對多列的時(shí)候,這里要如何寫呢?其實(shí)你如果仔細(xì)的觀察代碼的話,就會(huì)發(fā)現(xiàn)了。
.RemoveDuplicates Columns:=Array(1, 3), Header:=xlYes將1換成了一個(gè)類似數(shù)組的方式,array()代表的就是數(shù)組,想要獲取多列的唯一值就是用這樣的結(jié)構(gòu),那么如何表現(xiàn)是第幾列呢?
來比較下兩個(gè)代碼的不同
.RemoveDuplicates Columns:=Array(1, 3), Header:=xlYes.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes很明顯發(fā)現(xiàn)了,array()括號內(nèi)的內(nèi)容是不相同的,(1,3)代表的就是第一列和第三列合在一起取唯一值,而(1,2)代表的就是第二列和第一列合在一起取唯一值,
這里的第一列第二列都是數(shù)據(jù)源整體,和單元格具體的位置無關(guān),并且并不受其他列的數(shù)據(jù)的影響。
1 2 3
這里只有兩列,那么如果有多列呢?三列甚至更多列呢?好吧,容我再賣個(gè)關(guān)子
================================
本節(jié)課的案例源碼已經(jīng)上傳,需要的小伙伴請按照如下步驟操作,一個(gè)不能少哦~~
1.加個(gè)粉(已關(guān)注的略過這一步)
2.轉(zhuǎn)發(fā)下本文章(算是對我的小小支持吧~)
3.后臺(tái)私信“8-2”
希望大家多支持~~,多多關(guān)注 ~ ~
好了,明晚19:00,準(zhǔn)時(shí)再見!
總結(jié)
以上是生活随笔為你收集整理的获取某一列_Excel VBA 8.2 获取多列唯一值,不用肉眼,VBA帮你快速搞定的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot----shiro集
- 下一篇: 项目建议书模板doc_重要!非洲猪瘟等动