005-身份證號碼的拆分

前幾天幫別人做了一張表,當時有個問題如下圖,要將身份證號碼拆分到後面的每個單元格里。

當時也沒多想,看著這麼規律的數字,於是就用了一個簡單的函數搞定了。

事後想了想,覺得函數可能有些慢,再加上最近有些忙,導致這個專欄的教程好久沒有更新了。於是就想著把這個的做法寫下了作為一期。代碼如下:

Sub 身份證分解()Dim rng As RangeDim str As StringApplication.ScreenUpdating = FalseFor Each rng In Application.Intersect(Selection, ActiveSheet.UsedRange) If Len(rng) > 0 Then str = StrReverse(rng.Value) For Item = 1 To 18 With rng.Offset(0, 19 - Item) .Value = Mid(str, Item, 1) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With Next End IfNextApplication.ScreenUpdating = TrueEnd Sub

事後又想一想,發現這段代碼稍作修改就可以有更多的用法,比如在財務上的金額需要分解開來。

Sub 金額分解()Dim rng As RangeDim str As StringApplication.ScreenUpdating = FalseFor Each rng In Application.Intersect(Selection, ActiveSheet.UsedRange) If Len(rng) > 0 Then str = StrReverse(Format(rng.Value * 100, "0")) For Item = 1 To 11 with rng.Offset(0, 12 - Item) .Value = Mid(str, Item, 1) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End with If Item = Len(str) + 1 Then rng.Offset(0, 12 - Item).Value = "¥" End If Next End IfNextApplication.ScreenUpdating = TrueEnd Sub

選中,運行,結果馬上就出現了。

把寫好的代碼做成載入宏存放到Excel里,以後這些問題就可以輕輕鬆鬆一鍵搞定。
推薦閱讀:

從四大到律所有多難? ?
請問四大的稅務部個人所得稅發展前途怎麼樣?
適合財務人員以及稅官用手機APP
年報那些事兒:當現金流和凈利潤發生背離

TAG:VBA | 身份证 | 财务 |