获取某一列_Excel VBA 8.2 获取多列唯一值,不用肉眼,VBA帮你快速搞定
前景提要(文末提供源碼下載)
昨天我們學習了針對單列的數據進行獲取唯一值的方法,今天我們提升下難度,來嘗試下獲取已多列為參照物,獲取唯一值的方法,昨天有很多小伙伴說還可以用字典的方法更加的簡單,其實,針對這個問題,我還是那句話,方法無絕對,多學點終究是好的,針對獲取唯一值的方法,我后續幾天會展開至少3種方法,大家可以選擇自己喜歡的方法來玩。
場景說明
很明顯今天的問題,我們無法用常規的去重的方式來實現了,因為去重的方式只能針對某一列的上下文進行操作的,現在我們的操作對象并不僅僅是一列,而是兩列,甚至可能是不相鄰的兩列,也可能是三列。
這就是我們今天構造的模擬數據源,我們來看看今天的效果要如何實現
代碼區
多列取唯一值,在我們日常的工作中確實是比較常見的操作,但是牽涉到多列的數據,是不是操作起來非常的困難呢?,其實并不會很難,我們來看看今天的代碼
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是不是很簡單,和上節的代碼有很多地方都是非常的相似的,但是又有一些地方不相同
其實我們使用的方式還是我們上節學習過的RemoveDuplicates的方法
先來看看最終的結果是怎么樣的
如果我們希望的是不連續的兩行是否能夠實現呢?
來實現下,我們現在希望在A-C兩列之間進行取唯一值的操作
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代碼是稍微有一些點修改的,我們一會來講述下。
從上面的兩個動圖,我們可以看出來,上面的代碼完全滿足了我們的需求,那么今天我們來繼續深入學習下RemoveDuplicates方法
代碼解析
前面我們也說了,今天的功能的關鍵代碼還是RemoveDuplicates方法的運用,上節我們學習了RemoveDuplicates在單列取唯一值的時候的運用,在今天的多列的取唯一值的需求中,依然能夠用到RemoveDuplicates
其實我們昨天留下了一個小的伏筆,
那么針對多列的時候,這里要如何寫呢?其實你如果仔細的觀察代碼的話,就會發現了。
.RemoveDuplicates Columns:=Array(1, 3), Header:=xlYes將1換成了一個類似數組的方式,array()代表的就是數組,想要獲取多列的唯一值就是用這樣的結構,那么如何表現是第幾列呢?
來比較下兩個代碼的不同
.RemoveDuplicates Columns:=Array(1, 3), Header:=xlYes.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes很明顯發現了,array()括號內的內容是不相同的,(1,3)代表的就是第一列和第三列合在一起取唯一值,而(1,2)代表的就是第二列和第一列合在一起取唯一值,
這里的第一列第二列都是數據源整體,和單元格具體的位置無關,并且并不受其他列的數據的影響。
1 2 3
這里只有兩列,那么如果有多列呢?三列甚至更多列呢?好吧,容我再賣個關子
================================
本節課的案例源碼已經上傳,需要的小伙伴請按照如下步驟操作,一個不能少哦~~
1.加個粉(已關注的略過這一步)
2.轉發下本文章(算是對我的小小支持吧~)
3.后臺私信“8-2”
希望大家多支持~~,多多關注 ~ ~
好了,明晚19:00,準時再見!
總結
以上是生活随笔為你收集整理的获取某一列_Excel VBA 8.2 获取多列唯一值,不用肉眼,VBA帮你快速搞定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot----shiro集
- 下一篇: 项目建议书模板doc_重要!非洲猪瘟等动