前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel VBA银行发放超过1W元的数据拆分

Excel VBA银行发放超过1W元的数据拆分

作者头像
哆哆Excel
发布2022-10-31 15:38:27
3870
发布2022-10-31 15:38:27
举报
文章被收录于专栏:哆哆Excel

【问题】今天有人问:银行发放时,有数据超过1万元的时候不能一次发放,只能分两次,

例如:

650,要不用拆分,就一笔

12000,要拆分成二笔:10000,2000

23000,要拆分成10000,10000,3000三笔。

【解决】

如果数据少,可以手工完成,如果数据量有几万条,那拆分就要加班啦。

如图:

将会拆分成如下

【代码】

代码语言:javascript
复制
Sub 银行发放超过1W的拆分()
    Dim sp_arr(), arr, brr()
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    arr = [a1].CurrentRegion
    Range("k2").Resize(10000, 4).ClearContents
    For i = 2 To UBound(arr)
        money = Val(arr(i, 4))
        sp_n = Int(money / 10000)
        If sp_n < 1 Then
            sp_n = 0
        Else
            If sp_n = money / 10000 Then
                sp_n = sp_n - 1
            End If
        End If
    
        ReDim sp_arr(sp_n)
        For j = 0 To sp_n
            If j = sp_n Then
                sp_arr(j) = money - sp_n * 10000
            Else
                sp_arr(j) = 10000
            End If
            Debug.Print sp_n, sp_arr(j)
            dic(dic.Count + 1) = Array(arr(i, 1), arr(i, 2), arr(i, 3), sp_arr(j))
        Next j
    Next i
    temparr = Application.Transpose(Application.Transpose(dic.items))
    Range("k2").Resize(UBound(temparr, 1), UBound(temparr, 2)) = temparr
End Sub

Sub 银行发放超过1W的拆分()

Dim sp_arr(), arr, brr()

Dim dic As Object

Set dic = CreateObject("Scripting.Dictionary")

arr = [a1].CurrentRegion

Range("k2").Resize(10000, 4).ClearContents

For i = 2 To UBound(arr)

money = Val(arr(i, 4))

sp_n = Int(money / 10000)

If sp_n < 1 Then

sp_n = 0

Else

If sp_n = money / 10000 Then

sp_n = sp_n - 1

End If

End If

ReDim sp_arr(sp_n)

For j = 0 To sp_n

If j = sp_n Then

sp_arr(j) = money - sp_n * 10000

Else

sp_arr(j) = 10000

End If

Debug.Print sp_n, sp_arr(j)

dic(dic.Count + 1) = Array(arr(i, 1), arr(i, 2), arr(i, 3), sp_arr(j))

Next j

Next i

temparr = Application.Transpose(Application.Transpose(dic.items))

Range("k2").Resize(UBound(temparr, 1), UBound(temparr, 2)) = temparr

End Sub

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档