2020年12月22日 星期二

VBA:Cells.SpecialCells 簡單應用+ 資料排序

有常在用進階篩選的我,要抓篩選後的資料,剛開始學習時,顯示篩選後的藍色區域(參圖1.)的可視範圍,一時半刻不知道該怎樣抓,後來再摸索後發現Cells有一個屬性SpecialCells,透過SpecialCells搜尋MSDN就找到答案了


圖1.篩選後

如圖1.紅框,篩選後字體會反藍色,但是一般抓資料的方式,卻無法直接抓取篩選後的資料。
這時候我們就要來利用一下Cells.SpecialCells的屬性;這個屬性有一個設定,為xlCellTypeVisible。

基本語法: SET a=ActiveSheet.Cells.SpecialCells(xlCellTypeVisible), 用宣告的方式來設置,必免記憶體爆了,要注意。

取得位置:上面宣告完了,透過即時運算就a.address取得位置。(如圖2)


圖2.區域變數與即時運算內容


簡單操作大概以上。
最近在某版刊到一個應用的例子。
圖3.案例(資料亂貼的狀態)
我借這個例子變化一下ActiveSheet.Cells.SpecialCells+迴圈+排序就搞定了。
新增一個ActiveX按鈕,將隨機資料貼在工作表1,並確認工作簿有工作表2,貼上以下CODE後,點選執行,再去看工作表2(如圖4),完工。
圖4.結果(執行後)
vba code參如下:(VBA設定教學),下載

沒有留言:

張貼留言

指數變化(2026.01.23) 開始透過AI做整理

  指數變化(2026.01.23) 開始透過AI做整理 上周焦點: 1/13消費者物價相關 美國消費者物價指數(CPI)年增率:2.7%(符合預期),月增率:0.3%。 美國核心CPI年增率:2.6%。 1/14企業庫存、房市、能源及房貸相關 美國企業庫存月增率:0.3%(10...