首页 > 社会

将一个工作表根据条件拆分成多个工作表

更新时间2018-08-06 05:09:52

将一个工作表根据条件拆分成多个工作表,按客户名称分成多个工作表,写成VBA宏比较方便。将一个工作表根据条件拆分成多个工作表


将一个工作表根据条件拆分成多个工作表

Sub 拆分()

'将工作表“321”,按客户名称分成多个工作表

    r = Application.CountA(Range("A:A"))

    Range("A:A").Select

    ActiveWorkbook.Worksheets("321").Sort.SortFields.Clear

    ActiveWorkbook.Worksheets("321").Sort.SortFields.Add Key:=Range("B2:B" & r), _

        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

    ActiveWorkbook.Worksheets("321").Sort.SortFields.Add Key:=Range("A2:A" & r), _

        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

    With ActiveWorkbook.Worksheets("321").Sort

        .SetRange Range("A1:C" & r)

        .Header = xlYes

        .MatchCase = False

        .Orientation = xlTopToBottom

        .SortMethod = xlPinYin

        .Apply

    End With

    For i = 2 To r

    If Cells(i - 1, 2) <> Cells(i, 2) Then

        ShName = Cells(i, 2)

        n = 1

        Sheets.Add After:=Sheets(Sheets.Count)

        Sheets("321").Select

        Sheets(Sheets.Count).Name = ShName

        Sheets(ShName).Range("A:A").NumberFormatLocal = "yyyy-m-d"

        Sheets(ShName).Cells(1, 1) = Cells(1, 1)

        Sheets(ShName).Cells(1, 2) = Cells(1, 3)

    End If

    n = n + 1

    Sheets(ShName).Cells(n, 1) = Cells(i, 1)

    Sheets(ShName).Cells(n, 2) = Cells(i, 3)

    Sheets(ShName).Range("A:B").EntireColumn.AutoFit

    Next i

    Range("A1").Select

End Sub


上一篇:货运公司会招聘cad机械制图?

下一篇:湖南省2018年直招士官有哪些专业