excel的篩選是乙個常用功能,即使是入門不久的小白也會使用。但是在vba處理資料時,如果工作表中的資料表使用了篩選,那麼使用vba如何知道到底有多少行處於顯示狀態呢?
如下圖資料表中有12行資料(不包括標題行),經過篩選後,在狀態條左側可以輕鬆地知道:有4條記錄符合篩選規則。
下面看看如何使用**獲取篩選後的記錄數量。
sub rowcntafterfilter1()
dim rng as range
dim c as range
dim n as integer
set rng = [a1].currentregion
for each c in rng.specialcells(xlcelltypevisible).areas
n = n + c.rows.count
next c
msgbox "篩選後資料行數為:" & n - 1
end sub
【**解析】
第5行**使用currentregion
獲取當前資料區域,並賦值給物件變數rng。
第6行到第8行**使用for...next
迴圈遍歷當前資料區域,其中specialcells(xlcelltypevisible)
獲取可見資料區域,也就是符合篩選新增的資料行。
第6行**中的areas
也可以使用rows
代替,對於連續的可見行屬於同乙個area
,因此使用areas
可以減少迴圈次數,提公升**效率。
第7行**進行累加計數統計行數。
第9行**輸出結果如下圖所示,注意由於資料標題行也包含在currentregion
中,因此顯示結果時需要使用n - 1
。
mybatis獲取插入後記錄的主鍵
如果有如下情況,在插入資料庫記錄後,想得到插入記錄的主鍵,用以後面的業務 那麼mybatis針對這種情況也提供了相應的支援 不支援批量插入 mysql是原聲自增id 假設自增主鍵的欄位名就為id insert into name,age values 比普通的插入就多了兩個屬性 usegenerat...
mysql 如何高效獲取新插入的最後記錄
在mysql中,使用auto increment型別的id欄位作為表的主鍵,並用它作為其他表的外來鍵,形成 主從表結構 這是資料庫設計中常見的用法。但是在具體生成id的時候,我們的操作順序一般是 先在主表中插入記錄,然後獲得自動生成的id,以它為基礎插入從表的記錄。這裡面有個困難,就是插入主表記錄後...
通過 ResultSet 獲取行記錄數
resultset沒有方法直接得到記錄數,只有另想方法,下面我介紹一下我取記錄數方法 如果只要得到記錄數,可以直接用sql語句的select count 得出來,但結果我既想得到記錄數,同時也需要用到記錄集的資料呢?那就要用到下面這種方法了。resultset rs rs.last 移到最後一行 i...