精华内容
下载资源
问答
  • 前言step 1 进入excel vba编程界面step 2 粘贴代码step 3 运行代码step 4 删除宏代码 前言 这两天接触到excel比较多,才发现...如果我们要把这个表按照班级拆分为三个表,可能一般我们都是通过筛选后复制粘贴。但这...

    前言

    这两天接触到excel比较多,才发现使用excel不仅仅是简单的复制粘贴。
    excel vb代码是非常强大,学会使用一些常用的功能,可以大大减少工作量。
    废话不多少,来看
    如下表格学生成绩表
    在这里插入图片描述

    如果我们要把这个表按照班级拆分为三个表,可能一般我们都是通过筛选后复制粘贴。但这是最土的办法,并且如果分类很多,数据量又大的话,非常浪费时间。
    来看使用excel宏轻松搞定。excel宏代码如下:

    Option Explicit
    Option Base 1
     
    Sub 按指定列分组拆分数据()
     
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
     
        Dim self As Worksheet
        Set self = ActiveSheet
        
        Dim nLastRowNum As Long
        Dim nLastColumnNum As Long
        
        Dim i As Long
        
        ' 删除其他的sheet
        
        For i = Sheets.Count To 1 Step -1
            If Sheets(i).Name <> self.Name Then
                Sheets(i).Delete
            End If
        Next i 
        
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True   
        
        '获取全部数据范围
        nLastRowNum = Cells(Rows.Count, 1).End(xlUp).Row
        nLastColumnNum = Cells(nLastRowNum, Columns.Count).End(xlToLeft).Column
        
        '获取标题
        Dim titleRange As Range
        Set titleRange = Application.InputBox(prompt:="请选择标题区域:将要当做标题行的每一个单元格", Type:=8)
         
        ' 有效数据开始行
        Dim nRowValidData As Long
        nRowValidData = titleRange.Row + titleRange.Rows.Count
     
        ' 获取拆分列的信息,只需要列号
        Dim splitColumnRange As Range
        Set splitColumnRange = Application.InputBox(prompt:="请选择拆分的列:选择任何一个该列的单元格即可", Type:=8)
        Dim columnNumToSplit As Long
        columnNumToSplit = splitColumnRange.Column
        
        ' 需要拆分的值字典
        Dim splitValueDict As Object
        ' 辅助字典用来保证顺序
        Dim splitValueDictReverse As Object
        Dim indexArray() As Long
        
        Set splitValueDict = CreateObject("Scripting.Dictionary")
        Set splitValueDictReverse = CreateObject("Scripting.Dictionary")
        
        Dim cellValue As String
        Dim ws As Worksheet
        
        For i = nRowValidData To nLastRowNum Step 1
            cellValue = Cells(i, columnNumToSplit).Text
            
            '1. 创建新的sheet;
            '2. 拷贝标题信息到新的sheet
            If Not splitValueDict.Exists(cellValue) Then
                splitValueDict(cellValue) = i
                splitValueDictReverse(i) = cellValue
                Set ws = Sheets.Add(After:=Worksheets(Worksheets.Count))
                ws.Name = cellValue
                self.Activate
                
                titleRange.Copy _
                    ws.Range(ws.Cells(titleRange.Row, titleRange.Column), ws.Cells(nRowValidData - 1, titleRange.Column))
                
            End If
            
            ' 拷贝其他内容
            
            Range(Cells(i, 1), Cells(i, nLastColumnNum)).Copy _
                GetLastPasteRangeBySheetName(cellValue, nLastColumnNum)
                    
        Next i
                
    End Sub
     
    Public Function GetLastPasteRangeBySheetName(ByRef SheetName As String, columnNum As Long) As Variant
        Dim wks As Worksheet
        Dim nLastRowNum As Long
     
        Set wks = ActiveWorkbook.Worksheets(SheetName)
        nLastRowNum = wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
        
        Set GetLastPasteRangeBySheetName = wks.Range(wks.Cells(nLastRowNum + 1, 1), wks.Cells(nLastRowNum + 1, columnNum))
        
    End Function
    

    step 1 进入excel vba编程界面

    在excel工作表中标签处右键查看代码
    在这里插入图片描述

    进入如下界面
    在这里插入图片描述

    step 2 粘贴代码

    然后把代码粘贴窗口中如下图:
    在这里插入图片描述

    step 3 运行代码

    点击下图中红框按钮
    在这里插入图片描述
    出现下面弹框
    在这里插入图片描述
    选择需要拆分标题区域。只需要用鼠标拖动选择区域即可
    在这里插入图片描述
    确定后再选择拆分的单元格,即按照班级拆分,选择班级
    在这里插入图片描述
    确定,结果如下
    在这里插入图片描述

    step 4 删除宏代码

    如果为了保存方便,我们需要把宏代码删掉,不然保存需要保存为支持宏的格式。
    运行成功后删除宏
    找到工具 选择宏。
    在这里插入图片描述
    删除刚刚的宏即可,然后关闭代码,保存即可
    在这里插入图片描述

    展开全文
  • EXCEL中,怎样查看一个工作簿中有几个工作表 几个EXCEL文件,每个文件(工作簿)中都上百个工作表, 怎样可以一次性查看一个簿包含几个表? 目前好像没有直接可以看到多少张工作表的按钮,这就需要运用函数来...

    EXCEL中,怎样查看一个工作簿中有几个工作表 有几个EXCEL文件,每个文件(工作簿)中都有上百个工作表, 怎样可以一次性查看一个簿包含几个表?

    目前好像没有直接可以看到有多少张工作表的按钮,这就需要运用函数来计算了:

     

    在任意一个单元格内输入

    =INFO("numfile")

    单元格属性为 常规

    可以看到打开所有EXCEL文件的工作表数量

     然后回车即可

     

    转载于:https://www.cnblogs.com/cymwill/p/7029524.html

    展开全文
  • excel将一个工作表根据条件拆分成多个sheet工作表

    万次阅读 多人点赞 2018-09-27 16:36:45
    本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表。 注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”, 而不是你新建工作簿时的sheet1...
    本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表。
    
    注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”,
     而不是你新建工作簿时的sheet1这种。手动改成“数据源”即可。或者是把代码中得"数据源"改为你得源工作表“Sheet1”也行
    
    

    先展示最后效果:
    这里写图片描述
    这里写图片描述

    开始步骤例子:

    1. 列表内容
    2. 这里写图片描述
    3. 这里写图片描述
    4. 这里写图片描述
    5. 代码如下
    Sub CFGZB()
    
        Dim myRange As Variant
    
        Dim myArray
    
        Dim titleRange As Range
    
        Dim title As String
    
        Dim columnNum As Integer
    
        myRange = Application.InputBox(prompt:="请选择标题行:", Type:=8)
    
        myArray = WorksheetFunction.Transpose(myRange)
    
        Set titleRange = Application.InputBox(prompt:="请选择拆分的表头,必须是第一行,且为一个单元格,如:“姓名”", Type:=8)
    
        title = titleRange.Value
    
        columnNum = titleRange.Column
    
        Application.ScreenUpdating = False
    
        Application.DisplayAlerts = False
    
        Dim i&, Myr&, Arr, num&
    
        Dim d, k
    
        For i = Sheets.Count To 1 Step -1
    
            If Sheets(i).Name <> "Sheet1" Then
                 Sheets(i).Delete
    
            End If
    
        Next i
    
        Set d = CreateObject("Scripting.Dictionary")
    
        Myr = Worksheets("Sheet1").UsedRange.Rows.Count
    
        Arr = Worksheets("Sheet1").Range(Cells(2, columnNum), Cells(Myr, columnNum))
    
        For i = 1 To UBound(Arr)
    
            d(Arr(i, 1)) = ""
    
        Next
    
        k = d.keys
    
        For i = 0 To UBound(k)
    
            Set conn = CreateObject("adodb.connection")
    
            conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
    
            Sql = "select * from [Sheet1$] where " & title & " = '" & k(i) & "'"
    
            Worksheets.Add after:=Sheets(Sheets.Count)
    
            With ActiveSheet
    
                .Name = k(i)
    
                For num = 1 To UBound(myArray)
    
                    .Cells(1, num) = myArray(num, 1)
    
                Next num
    
                .Range("A2").CopyFromRecordset conn.Execute(Sql)
    
            End With
    
            Sheets(1).Select
    
            Sheets(1).Cells.Select
    
            Selection.Copy
    
            Worksheets(Sheets.Count).Activate
    
            ActiveSheet.Cells.Select
    
            Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
                                   SkipBlanks:=False, Transpose:=False
    
            Application.CutCopyMode = False
    
        Next i
    
        conn.Close
    
        Set conn = Nothing
    
        Application.DisplayAlerts = True
    
        Application.ScreenUpdating = True
    
    End Sub
    
    
    
    
    

    6.这里写图片描述
    7.在这里插入图片描述
    8.这里写图片描述
    9.这里写图片描述
    10这里写图片描述
    这里写图片描述
    11.这里写图片描述
    12注意:

    1)原始数据表要从第一行开始有数据,并且不能有合并单元格;

    2)打开工作簿时需要开启宏,否则将无法运行代码。

    展开全文
  • 例如工作薄中个工作表,如图: 将一个Excel工作簿中的多个工作表(sheet)拆分成如下图所示结果 打开需要拆分的excel,在任意工作表右击,点击“查看代码” 在打开的窗口中输入如下代码:...

     以下是office中的EXCEL,wps会员的话自带拆分功能(特别方便)

    • 例如工作薄中有多个工作表,如图:

      怎么将Excel多个工作表拆分成多个单独的Excel

    • 将一个Excel工作簿中的多个工作表(sheet)拆分成如下图所示结果

      怎么将Excel多个工作表拆分成多个单独的Excel

    • 打开需要拆分的excel,在任意工作表右击,点击“查看代码”

      怎么将Excel多个工作表拆分成多个单独的Excel

    • 在打开的窗口中输入如下代码:

      Private Sub 分拆工作表()

             Dim sht As Worksheet

             Dim MyBook As Workbook

             Set MyBook = ActiveWorkbook

             For Each sht In MyBook.Sheets

                 sht.Copy

                 ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sht.Name, FileFormat:=xlOpenXMLWorkbook     '将工作簿另存为xlsx格式

                 ActiveWorkbook.Close

             Next

             MsgBox "文件已经被分拆完毕!"

         End Sub

      怎么将Excel多个工作表拆分成多个单独的Excel

    • 点击绿色三角,运行程序,等待拆分。

      怎么将Excel多个工作表拆分成多个单独的Excel

    • 拆分成功后,会弹出窗口提示。

      怎么将Excel多个工作表拆分成多个单独的Excel

    • 7

      返回Excel工作簿文件所在路径 即可查看已经拆分的工作薄。

      怎么将Excel多个工作表拆分成多个单独的Excel

    展开全文
  • 如何为多个Excel个工作簿的表头或表尾或中间,快速批量插入相同的。 使用这个工具:www.excelfb.com 点击:多个Excel文件批量插入相同内容 如下图所示操作: ...
  • 使用这工具可以去表头合并,需要格式一样,在线工具无需安装。... 如果是按Sheet名称合并点击:多个Excel文件合并(相同名称的Sheet合并) 如果是所有的合并成一个表点击:...支持多个Excel文件,多Sheet(...
  • 这是对EXCEL数据透视的应用,教程参考来自EXCEL HOME,这里附上我的全部练习过程和图片。本文中所用所有图片以及文字均为本人原创,但为尊重原作者,故还是打上了转载的标签。如需转载,还请标上本人昵称qk61508或...
  • 前面我们已经掌握了单元格、工作表、按钮关联宏的使用今天我们就做一综合案例 做案例之前我们先补充一点新知识 Cells(2,3) //表示两行三列的单元格 Range(“a1”).offset(1,2)// 下移一行,右移2行 Range(...
  • excel中要将一个工作表根据条件拆分成多个工作表没有很简单的办法,使用vba要上百行代码才能实现这个功能,在python中使用pandas的分组功能很简单就能实现拆分工作表。 原始表格如下: 经过拆分后,每个班级的...
  • 一、原始数据表如下(sheet页名称为:数据源),需要根据B列人员所属组织拆分成每个组织一个工作表。 二、进入VBE编辑页面 三、插入一个新的模块。 四、在模块1窗口粘入如下代码 ,并保存 五、通过【开发者工具】...
  • excel个工作表求和案例

    千次阅读 2014-09-26 11:32:57
     本文对常见的excel个工作表求和,给出几个小实例,大家可以对照来解决实际中遇到的excel个工作表求和问题。  excel个工作表求和一:  比如10个工作表,需要将1、3、5、7、9工作表的 B13单元格求和。  ...
  • 出现运行错误'3706',可将...Dsn=Excel Files;DBQ=" &amp; ThisWorkbook.FullName 分成工作簿的模块代码: Sub CFGZB()  Dim myRange As Variant  Dim myArray  Dim titleRange As Range  Dim t...
  • 最近需要筛选Excel的数据 看到网上大神做出来的Demo 但是在mac上...Sub 如何将一个Excel工作表的数据拆分成多个工作表() Dim Arr, Rng As Range, Sht As Worksheet, Dic As Object Dim k, t, Str As String, i A
  • 实现的功能是把多个Excel文件的第一个工作表(Sheet)合并到一个Excel文件的多个工作表里,并且新工作表的名称等于原Excel文件的文件名。开发环境Excel2007,但是Excel2003应该也能用,Excel2000似乎不能用。代码...
  • POI创建Excel创建多个工作表sheet(二)

    万次阅读 2015-05-22 09:28:38
    直接上代码吧 里面研究了几个参数的用法 顺便贴出来给大家分享哈。可能有点弱智了吧 应该大家都会这个吧哈哈 package com.dragon.test; import java.io.File; import java.io.FileOutputStream; import org....
  • 用python将一个excel工作表根据条件拆分成多个工作表(只用openpyxl库) 最近在学python,刚刚了解了openpyxl库,就想写点实用的功能。比如按某列值拆分工作表。 先放代码 from openpyxl import Workbook, load_...
  • 用VBA对一个EXCEL中的多个工作表排序

    千次阅读 2016-12-21 17:02:30
    要求:对一个EXCEL中的多张工作表进行相同的排序 第一次进行VBA代码实际操作,先录制的宏,然后再对代码进行微调。 虽然还有所欠缺,不过是第一次,记在这里做小纪念,继续努力!
  • 本文使用openpyxl实现将同一文件夹下的所有Excel文件中的数据整理到一新的Excel工作表中,待整理的数据在Excel工作簿的所有sheet中,且具有相同的表头结构。 代码如下: # -*- coding: utf-8 -*- __author__ = ...
  • 2、打开excel2016版软件以后,为了更好的示范编辑2任意文字的工作表; 3、编辑好文字以后,在表2的工作表标签,点击鼠标右键并在下拉选项中选择“移动或复制”; 4、在弹出的对话框中,上面选择新工作簿,...
  • 个Excel表合并成一个Excel表

    万次阅读 多人点赞 2019-06-30 17:38:04
    比如班级需要汇总每人的信息,十人每人都发了个人的信息,一个表的数据打开粘贴,不仅麻烦,而且还可能出错,这样的做法是最简单粗暴但是很浪费时间的。当然,如果是大批量的数据使用python或者其他语言...
  • 在日常工作中,您是否遇到过这样的情况:您用Excel编制的报表、表格、程序等,在单元格中设置了公式、函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel工作表保护功能,但时间久了...
  • Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count  If Sheets(j).Name  X = Range("A65536").End(xlUp).Row + 1  Sheets(j).UsedRange.Copy Ce
  • 本篇经验贴子中,我将向大家分享如何利用函数将一个Excel工作簿中的多个工作表拆分成为单独的工作簿文件。步骤亦不负责,具体请参看内容。希望对你有所帮助! 工具/原料 microsoft office excel 2007 ...
  • excel工作表标签颜色设置方法

    千次阅读 2016-04-11 15:46:42
    excel教程中设置工作表标签颜色的方法下面种,逐一介绍。...如果需要为多个工作表设置标签颜色,按住Ctrl键选取多个工作表,同时设置多个工作表的标签颜色。 工作表标签颜色设置方法二:  在Sheet
  • Sub 合并工作表() For i = 2 To Sheets.Count Sheets(i).UsedRange.Copy Destination:=Sheets(“汇总”).Range(“A” & Sheets(“汇总”).UsedRange.Rows.Count + 1) Next End Sub ALT+F11,打开代码窗口.粘贴...
  • 如何隐藏 Excel 工作表

    千次阅读 2011-06-16 10:37:00
    http://yiliusiyu.blog.163.com/blog/static/6827587201001113832837/当使用 Microsoft(R) Excel 时,有些时候您可能想隐藏某一特殊的工作表...有几种不同的方式可以“隐藏”工作表。 一、普通隐藏方法在 Excel 2007 下
  • Excel如何批量的将多个工作表转换成一个PDF http://exceltopdf.yjpdf.com/1026.html
  • 在你的当前工作簿下新建一sheet然后你在这sheet和标签处右键 查看代码(找不到的直接按...Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count If Sheets(j).N
  • 工作中常会遇到合并Excel文件的需求,Excel文件数量不确定,里面的Sheet 数量是可变的,Sheet Name是可变的,所以,需要用到遍历一个文件夹下有几个Excel文件,判断每个 Excel文件有几个Sheet,Sheet name是什么。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,449
精华内容 19,779
关键字:

如何知道excel有几个工作表