Excel vba 實例(10)-統計同一列中出現次數並標註

後臺有夥伴留言幫忙解決一個excel問題,情況是這樣的,如下圖:

Excel vba 實例(10)-統計同一列中出現次數並標註

一列中只有「是」和「否」的兩種情況,分別統計這一列「是」和「否」出現的次數,要求是出現了不同的的重新統計

問題不復雜,VBA能很快解決問題。直接上代碼:

Sub count()

Dim Rng As Range

Dim i&, Col&, Fist, Last

Dim count

Set Rng = Application.InputBox("請選擇單列數據列!", Type:=8)

'用戶選擇數據列

Set Rng = Intersect(Rng.Parent.UsedRange, Rng)

'intersect語句避免用戶選擇整列造成無謂運算

Col = Rng.Column 'Rng所在列

Fist = Rng.Row

'Rng開始行,用戶選擇的區域並不是一定從第一行開始,因此需要此句判斷

Last = Fist + Rng.Rows.count - 1 'Rng結束行

Application.ScreenUpdating = False '取消屏幕更新

Application.DisplayAlerts = False

'取消消息提醒。當有值單元格被合併時屏蔽提示信息

Rng.Parent.Select '激活Rng對象所在的工作表,避免跨工作表操作問題

count = 1

For i = Last To Fist + 1 Step -1

'對Rng進行從後向前遍歷

If Cells(i, Col) <> Cells(i - 1, Col) Then

Cells(i, Col + 1) = count

count = 1

ElseIf Cells(i, Col) = Cells(i - 1, Col) Then

count = count + 1

End If

Next

End Sub

演示效果圖

Excel vba 實例(10)-統計同一列中出現次數並標註

把需要統計的數據粘貼進去即可,或者直接把上面的代碼複製運行也行。

需要注意的是,第一行為標題行,不要粘貼數據。代碼是從第二行開始統計。

同樣的,永恆君直接把上面實例VBA的文件分享出來,需要的就直接使用吧。

wx公號後臺回覆“統計”即可。


不少人對VBA代碼有牴觸心理,其實沒有那麼複雜,把他看成一個稍微複雜點的函數即可。

當然如果並不打算深入學習VBA,只是臨時使用下,那隻要會複製黏貼就好了!

至於怎麼用VBA代碼,可以參考之前的文章:

Excel vba 實例(1) - 批量製作工資表頭

Excel vba 實例(2) - 批量將工作表拆分為單獨文件

Excel vba 實例(3) - 多個工作簿批量合併

Excel vba 實例(4) - 根據已有名稱,批量新建表格

Excel vba 實例(5) - 快速合併n多個相同值的單元格

Excel vba 實例(6) - 一鍵彙總多個sheet數據到總表

Excel vba 實例(7)-一鍵批量打印工作簿

Excel vba 實例(8)- 利用正則表達式進行定向提取

Excel vba 實例(9)- 批量插入、刪除表格中的空行


Excel VBA功能很強大,但是要熟練的運用起來還是有一定的難度,好在永恆君幫大家蒐集了幾套關於VBA的視頻教程,非常的實用。

需要的話,後臺回覆“VBA”獲取吧~~

Excel vba 實例(10)-統計同一列中出現次數並標註

Excel vba 實例(10)-統計同一列中出現次數並標註

Excel vba 實例(10)-統計同一列中出現次數並標註

歡迎交流!



分享到:


相關文章: