精华内容
下载资源
问答
  • 2021-04-23 17:31:23

    问题:一个excel中有多个工作表,并且没有按照sheet+数字的形式默认命名,且电脑里没有VB,因此无法查看代码,那么怎么能够快速知道有多少个工作表呢?


    随便打开一张工作表,随便点击选中一个单元格,在其中完整输入:

    =INFO("numfile")
    

    就会自动显示sheet数量


    TIP:确保自己之打开了想要查询sheet数量的excel,默认统计所有打开的excel中sheet总数量。

    在这里插入图片描述

    更多相关内容
  • EXCEL多行表头的工作表拆分为多个工作表的VBA宏代码
  • 编辑:哈雷 |来源:巨盒创意 | 欢迎转发到朋友圈日常工作中,我们可能这样的需求,我们的数据分别存放在N个工作簿里,我们需要把这些零散的数据都移动到一个工作簿里面,而且每张工作表分别存在!我们常用的方法是...

    c3312dd0007d6c4ebb0e57c4d7fc403c.gif

    编辑:哈雷  |  来源:巨盒创意  |  欢迎转发到朋友圈 6d5d68923d501d4cd71f2992e2be7413.gif

    日常工作中,我们可能有这样的需求,我们的数据分别存放在N个工作簿里,我们需要把这些零散的数据都移动到一个工作簿里面,而且每张工作表分别存在!

    我们常用的方法是,一个个打开工作簿,通过移动工作表的方式一个个移动过去,但是如果我们的数据量很大时,这样做是很麻烦的事情,下面给大家介绍一个十分简单的方法,几秒钟实现我们的目的!

    1、新建“工作表合并.xlsx”文件>>   选项>> 信任中心>> 点击“信任中心设置”按钮>> 宏设置>> 选中“启用所有宏”点击“确定”按钮。    // 要执行VB代码必须先启用宏设置。

    372a282de7073ec4c5fec22109371882.png

    261c8d66693ef39b99f4dcf16f3372ba.png

    2、右键单击任意一个工作表标签,在弹出的右键快捷菜单单击“查看代码”进入VBA编辑环境 >>“代码窗口”复制粘贴以下代码,按下F5快捷键执行这段代码或者在菜单中单击“运行子过程/用户窗体”命令。 

    Sub 合并工作薄()

    Dim FileOpen

    Dim X As Integer

    Application.ScreenUpdating = False

    FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="2015")

    X = 1

    While X <= UBound(FileOpen)

    Workbooks.Open Filename:=FileOpen(X)

    Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

    X = X + 1

    Wend

    ExitHandler:

    Application.ScreenUpdating = True

    Exit Sub

    errhadler:

    MsgBox Err.Description

    End Sub

    1c2232e4e1ebd1309b16085adcc4db68.png

    3、选择要合并的工作表文件,点击“打开”,程序运行的工程中不要进行任何操作,等待宏运行完成。

    b9d2264cbf9195b965db1b325443b6b1.png

    4、运行完成后,工作薄中会出现所有要合并的工作薄中的工作表,如下图所示:

    4e006b895003ca5f8f775e0853341fa5.png

    关注巨盒创意微信公众号,免费学习更多精品教程,高效、便捷办公。

    58f7bba549ae84c757d9a0a943341f9a.gif

     End

    427969571d5a2b7c93e85549f4e92bd9.gif

    展开全文
  • 前言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 删除宏代码

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

    展开全文
  • 那其实也可以把多个工作表合并为一个。 继续之前的例子,我们把汇总表删除 如下 把表 1,2,3 合并到sheet5中 合并代码如下: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = Fals...

    在上篇博客https://blog.csdn.net/whandgdh/article/details/100184090,讲到了把一个工作表拆分为多个,
    那其实也可以把多个工作表合并为一个。
    继续之前的例子,我们把汇总表删除
    如下
    在这里插入图片描述
    把表 1,2,3 合并到sheet5中

    Sub 合并当前工作簿下的所有工作表()
    Application.ScreenUpdating = False
    For j = 2To Sheets.Count
     ' j=2表示 从第二个表中开始获取工作簿的所有工作表
    If Sheets(j).Name <> ActiveSheet.Name Then
    X = Range("A95536").End(xlUp).Row + 1
    Sheets(j).UsedRange.Copy Cells(X, 1)
    End If
    Next
    Range("B1").Select
    Application.ScreenUpdating = True
    MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
    End Sub
    

    同样进入sheet5的vba编程界面
    在这里插入图片描述
    放入代码并运行
    在这里插入图片描述
    运行结果如下图:
    在这里插入图片描述

    删除宏代码 然后保存
    在这里插入图片描述

    展开全文
  • 今天为大家来带的是关于多个工作表合并的小技巧,相信大家学会了之后再遇到需要汇总多个工作表数据的情况时可以轻松、高效的解决问题啦!话不多说,快往下看看吧!①多个工作簿单张工作表的合并如下图所示,我们有几...
  • 在工作中,时常要遇到将许多个工作簿中的数据合并到一个工作表中,一个一个的复制粘贴吧,几个表或者十几个表还行,再多了恐怕就太费时了,如果再多点比如几十上百个表要合并,而且又催得急可能就不是加不加班的...
  • 这么一种情况,就是我们很多张excel,而且excel表里面的公式基本一样,我们就想快速的把这些excel合并在一起,意思在合并在一个excel页面,这样可以方便我们分析和统计,那么excel如何快速把多个工作表合并到一...
  • Excel多个工作簿合成为一个工作表

    万次阅读 2020-08-21 14:02:20
    Excel多个工作簿合成为一个工作表 目录 前言 第一步:多张工作簿合并成一个“汇总工作簿”,操作如下: 第二步:把多张sheet表合并成一张sheet工作表,操作如下: 总结 前言 在工作中,我们会遇到这种情况,...
  • Excel表格是我们在工作中经常用到的一软件,是汇总数据的好帮手,一些用户会问,那应该怎么把很多个excel表格合并在一张里面呢?其实方法很简单,今天小编就教大家多个excel表合并成一的方法。具体操作步骤...
  • 上篇说到将excel中的一个工作表按照某列拆分成多个sheet工作表,那么如何把excel中的多个工作表sheet合成一个工作表呢?接下来就继续利用VBA工具来解决这个问题。 工作表合成前: 工作表合成后: **第一步:**在...
  • 前面我们已经掌握了单元格、工作表、按钮关联宏的使用今天我们就做一综合案例 做案例之前我们先补充一点新知识 Cells(2,3) //表示两行三列的单元格 Range(“a1”).offset(1,2)// 下移一行,右移2行 Range(...
  • 如何将excel中的一个工作表按照某列拆分成多个sheet工作表呢?接下来就利用VBA工具来解决这个问题。 拆分之前的工作表: 拆分之后的工作表: 操作步骤具体如下: 第一步:打开需要拆分的表格文件:点击“开发工具...
  • 前言step 1 进入excel vba编程界面...
  • EXCEL中,怎样查看一个工作簿中有几个工作表 几个EXCEL文件,每个文件(工作簿)中都上百个工作表, 怎样可以一次性查看一个簿包含几个表? 目前好像没有直接可以看到多少张工作表的按钮,这就需要运用函数来...
  • 时候需要在一个工作簿中建立多个工作表,并且需要自定义工作表的名称,手动的一个个双击表名去修改非常麻烦,特别是这次我需要建立一百多个表的时候。。。。 方法一:使用数据透视表功能 方法二 使用VB写模块...
  • 如何为多个Excel个工作簿的表头或表尾或中间,快速批量插入相同的。 使用这个工具:www.excelfb.com 点击:多个Excel文件批量插入相同内容 如下图所示操作: ...
  • excel如何把多张工作表内容快速复制到一张表
  • excel将一个工作表根据条件拆分成多个sheet工作表

    万次阅读 多人点赞 2018-09-27 16:36:45
    本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表。 注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”, 而不是你新建工作簿时的sheet1...
  • 在一些操作中,往往会需要将多个工作簿进行合并。一般的操作方法都是打开两个工作簿,然后选中需要移动的工作表,右键单击以后选择“移动或复制”。...如图,现在在一个文件夹里面有几个工作簿,里面分别...
  • excel如何快速把多个工作表合并到一个excelexcel如何快速把多个工作表合并到一个excel这么一种情况,就是我们很多张excel,而且excel表里面的公式基本一样,我们就想快速的把这些excel合并在一起,意思在...
  • 1.需要把多个excel表都放在同一文件夹里面,并在这文件夹里面新建一个excel。如图所示:2.用microsoft excel打开新建的excel表,并右键单击sheet1,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。如...
  • 如何快速把多个excel表格合并成一个excel表呢?首先,我们需要把多个excel表都放在同一文件夹里面,并在这文件夹里面新建一个excel文件。用microsoft excel打开新建的excel表,并右键单击sheet1,或者按ALT+F11...
  • 一、原始数据表如下(sheet页名称为:数据源),需要根据B列人员所属组织拆分成每个组织一个工作表。 二、进入VBE编辑页面 三、插入一个新的模块。 四、在模块1窗口粘入如下代码 ,并保存 五、通过【开发者工具】...
  • 1、首先要保证多个工作表(sheet页)表头保持一致,或者部分保持一致(只能修改一致的部分) 2、如果想要删除所有工作表中的B列内容 ,一个一个的删除会很麻烦,所以需要使用批量删除: 1)鼠标点选工作簿中第一...
  • 如何在电脑桌面并排显示多个Excel工作表导语:在进行数据处理时,往往需要同时打开多个工作表。有时需要对打开的这多个工作表的数据进行比较,此时需要让工作表在桌面上并排排列,以方便查看。要实现这种操作,可以...
  • python 实现读取一个excelsheet并合并的方法如下所示:import xlrdimport pandas as pdfrom pandas import DataFrameDATA_DIR = 'E:/'excel_name = '%s2017.xls' % DATA_DIRwb = xlrd.open_workbook(excel_...
  • 个Excel表合并成一个Excel表

    万次阅读 多人点赞 2019-06-30 17:38:04
    比如班级需要汇总每人的信息,十人每人都发了个人的信息,一个表的数据打开粘贴,不仅麻烦,而且还可能出错,这样的做法是最简单粗暴但是很浪费时间的。当然,如果是大批量的数据使用python或者其他语言...
  • 表格 sheet1 和 sheet2 ,AB 两列 ,sku和仓库 两条件确定一条记录,现在是 sheet1 的数据比sheet2 数据多 ,如何查找出 存在与 sheet1 中,但是不在 sheet2 的数据 ?   附公式: Sub 数据...
  • 需要注意的是,xlsx格式的Excel文件最大行数限制,如果超过了会抛出异常,例如, 如果需要把多个DataFrame对象的数据以横向扩展的方式写入同一个Excel文件的同一个工作表中,除了参考上面的方法一对DataFrame对象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,456
精华内容 22,982
关键字:

如何知道excel有几个工作表