Create new Excel rows based on column data

后端 未结 4 775
感动是毒
感动是毒 2021-01-23 03:43

Good afternoon all,

I have an issue where I have users who have multiple bank account details. I need to try and create a new row for each employee who has more than one

4条回答
  •  说谎
    说谎 (楼主)
    2021-01-23 04:16

    Here is another sub that appears to perform what you are looking for.

    Sub stack_accounts()
        Dim rw As Long, b As Long
        Dim vVALs As Variant, vBSBs As Variant, vACTs As Variant
    
        With ActiveSheet   '<-define this worksheet properly!
            For rw = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
                vVALs = .Cells(rw, 1).Resize(1, 4).Value
                vBSBs = Split(vVALs(1, 3), Chr(44))
                vACTs = Split(vVALs(1, 4), Chr(44))
                If UBound(vBSBs) = UBound(vBSBs) Then
                    For b = UBound(vBSBs) To LBound(vBSBs) Step -1
                        If b > LBound(vBSBs) Then _
                            .Rows(rw + 1).Insert
                        .Cells(rw - (b > LBound(vBSBs)), 1).Resize(1, 4) = vVALs
                        .Cells(rw - (b > LBound(vBSBs)), 3).Resize(1, 2).NumberFormat = "@"
                        .Cells(rw - (b > LBound(vBSBs)), 3) = CStr(vBSBs(b))
                        .Cells(rw - (b > LBound(vBSBs)), 4) = CStr(vACTs(b))
                    Next b
                End If
            Next rw
        End With
    End Sub
    

    I was originally only going to process the rows that had comma delimited values in columns C and D but I thought that processing all of them would allow the macro to set the Text number format and get rid of the Number as text error warnings and keep the leading zero in 041145273.

            Split accounts and add new row(s)

提交回复
热议问题