广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    Excel按条件快速将总表数据拆分成多个工作表

    来源:网络收集  点击:  时间:2024-03-27
    【导读】:
    Microsoft Excel按条件快速将总表数据拆分成多个工作表。工具/原料more计算机Microsoft Excel方法/步骤1/8分步阅读

    左键双击打开素材文件【将总表数据拆分成多个工作表.xlsx】Microsoft Excel工作表。要编辑VBA代码,首先我们需要打开【Visual Basic编辑器】,右键单击【总表】工作表,左键单击右键菜单中的【查看代码(V)】即可打开【Visual Basic编辑器】。

    2/8

    编辑VBA代码。左键单击【工程资源管理器】中的【Sheet1 总表】后,在右侧代码窗口中键入以下代码,您也可以选择复制粘贴。代码输入完成后,不需要保存,直接关闭【Visual Basic编辑器】即可。

    3/8

    Sub NewSheets()

    Dim d As Object, sht As Worksheet, arr, brr, r, kr, i, j, k, x

    Dim Rng As Range, Rg As Range, tRow, tCol, aCol, pd

    Application.ScreenUpdating = False

    Application.DisplayAlerts = False

    Set d = CreateObject(scripting.dictionary)

    Set Rg = Application.InputBox(请您框选拆分依据列!只能选择单列单元格区域!, Title:=提示, Type:=8)

    tCol = Rg.Column

    tRow = Val(Application.InputBox(请您输入总表标题行的行数?))

    If tRow = 0 Then MsgBox 您未输入标题行行数,程序退出!: Exit Sub

    Set Rng = ActiveSheet.UsedRange

    arr = Rng

    tCol = tCol - Rng.Column + 1

    aCol = UBound(arr, 2)

    For i = tRow + 1 To UBound(arr)

    If Not d.exists(arr(i, tCol)) Then

    d(arr(i, tCol)) = i

    Else

    d(arr(i, tCol)) = d(arr(i, tCol)) , i

    End If

    Next

    For Each sht In Worksheets

    If d.exists(sht.Name) Then sht.Delete

    Next

    kr = d.keys

    For i = 0 To UBound(kr)

    If kr(i) Then

    r = Split(d(kr(i)), ,)

    ReDim brr(1 To UBound(r) + 1, 1 To aCol)

    k = 0

    For x = 0 To UBound(r)

    k = k + 1

    For j = 1 To aCol

    brr(k, j) = arr(r(x), j)

    Next

    Next

    With Worksheets.Add(, Sheets(Sheets.Count))

    .Name = kr(i)

    ..Resize(tRow, aCol) = arr

    ..Offset(tRow, 0).Resize(k, aCol) = brr

    Rng.Copy

    ..PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    ..Select

    End With

    End If

    Next

    Sheets(1).Activate

    Set d = Nothing

    Erase arr: Erase brr

    MsgBox 数据拆分完成!

    Application.ScreenUpdating = True

    Application.DisplayAlerts = True

    End Sub

    4/8

    按条件快速将总表数据拆分成多个工作表使用流程。首先我们需要在菜单栏中显示【开发工具】。显示【开发工具】详细操作流程请参照:PPT小技巧:如何把视频嵌入到PPT演示文稿中合并成一个文件?PPT和Excel操作流程基本一致。左键单击菜单栏中的【开发工具】选项卡,左键单击【代码】功能区中的【宏】按钮。

    5/8

    左键单击选中【宏】对话框中的【Sheet1.NewSheets】后,左键单击【执行(R)】按钮。

    6/8

    素材中拆分工作表的条件是【班级】,左键单击【A】列后,【提示】对话框中的文本框会自动生成单元格区域【$A:$A】,左键单击【确定】按钮即可进行下一步操作。备注:也可长按鼠标左键圈选单元格区域,在圈选单元格区域时,无蚂蚁线作为提示,圈选完成后请核对圈选区域是否正确。

    7/8

    在【输入】对话框的文本框中,键入总表标题行的行数,素材中标题行的行数为【1】,所以键入的数字为【1】,键入完成后,左键单击【确定】按钮。拆分完成后会有【数据拆分完成!】的提示框,左键单击【确定】按钮即可完成总表的拆分。

    8/8

    按条件快速将总表数据拆分成多个工作表效果展示。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_366858.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 01:14:11  耗时:0.032
    0.0323s