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
選中,運行,結果馬上就出現了。
推薦閱讀:
※從四大到律所有多難? ?
※請問四大的稅務部個人所得稅發展前途怎麼樣?
※適合財務人員以及稅官用手機APP
※年報那些事兒:當現金流和凈利潤發生背離