你了解财務對賬單裡的重複值如何快速地删除嗎?
今天就給大家來介紹這方面的知識,希望可以對大家有用。
财務工作中,你是否遇到焦頭爛額不知如何解決的問題呢?
某粉絲,有幾百個客戶,需要将客戶對應的數據複制到相應的表格。已經複制了1天,結果發現數據重複了。準備再重新操作,處理到淩晨應該能搞完。
哎,慘。。。
盧子簡化一下表格,大概是這樣,現在對賬單已經生成到每個工作表了,就是裡面的數據有的是重複的,需要将所有工作表的重複值删除。
删除重複值這個功能,默認情況下隻能對一個表操作,如果選擇全部工作表,是不允許操作的。
也就是說,這種問題隻能借助VBA解決了。
直接寫代碼難度是比較大,可以錄制一個删除重複值的宏,再加循環語句。
點開發工具,錄制宏,選擇區域,點數據,删除重複值,确定,開發工具,停止錄制。
點VB,進入VBA的後台,在模塊裡面就能找到剛剛錄制的宏。
好,删除重複值的代碼出來了。下面就得考慮區域的問題,每個工作表的區域都起始行都一樣,但結束行不一樣,但有一個規律,最後一行都是合計。
判斷合計的行數,可以用MATCH函數。
=MATCH("合計",A:A,0)
在VBA中也可以調用工作表函數。
Application.Match("合計", .Range("a:a"), 0)
核心的兩個問題解決,剩下的就加循環語句、容錯等。代碼運行動畫。
最終代碼如下:
Sub 删除重複值()
Dim i%, h1%, h2%, Sh As Worksheet
On Error Resume Next
Application.ScreenUpdating = 0
For Each Sh In Worksheets
If Sh.Name <> "總明細" Then
With Sh
h1 = Application.Match("合計", .Range("a:a"), 0)
.Range("A5:L" & h1).RemoveDuplicates Columns:=Array(1, 12), Header:=xlYes
h2 = .Cells(h1, 1).End(xlUp).Row
If .Cells(h1, 1).Offset(-1) = "" Then
.Rows(h2 1 & ":" & h1 - 1).EntireRow.Delete
h1 = Application.Match("合計", .Range("a:a"), 0)
.Cells(h1, 1).Offset(0, 3) = "=sum(r5c:r[-1]c)"
.Cells(h1, 1).Offset(0, 5) = "=sum(r5c:r[-1]c)"
End If
End With
End If
Next Sh
Application.ScreenUpdating = 1
End Sub
VBA好用是好用,就是太難了,寫代碼、修改代碼、測試代碼都要花費大量時間。
來源:Excel不加班
【小會福利時間到】
小會又來送福利啦!
【工資标準表】
【變更工資申請表】
關注 私信小編:資料
即可領取以上資料哦!
因領取人數太多,若是不能及時回複,請大家耐心等待哦~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!