首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA代码:拆分工作簿示例——将工作簿中的每个工作表保存为单独的工作簿

标签:VBA 有时候,我们想将工作簿中的每个工作表都保存为一个单独的工作簿。 你可以使用下面的操作逐个保存工作表: 1.在工作表标签中单击右键。 2.选取“移动或复制…”命令。...3.选择“(新工作簿)”。 4.保存该工作簿。 图1 这样,有多少工作表,你就要操作上面的步骤多少次。 然而,如果存在很多个工作簿,这样的重复工作使用VBA是最合适的。...下面是代码: Sub SaveWorksheetsToWorkbook() Dim wks As Worksheet Dim strPath As String Dim strFileName...Next wks Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 只需在要拆分的工作簿中运行上述代码...,就可将该工作簿中的所有工作表全部保存为单独的工作簿。

4.1K11

VBA: 将多个工作簿的第一张工作表合并到一个工作簿中

文章背景: 在工作中,有时需要将多个工作簿进行合并,比如将多份原始数据附在报告之后。...一般的操作方法是打开两个工作簿(目标工作簿和待转移的工作簿),然后选中需要移动的工作表,右键单击以后选择“移动或复制”。接下来在新的对话框里面进行设置。 这种方法适合在移动少量工作表的时候使用。...在目标工作簿内,插入一个模块,然后导入如下的代码: Option Explicit Sub MergeWorkbook() '将多个工作簿的第一张工作表合并到目标工作簿中...End Sub (1) 将目标工作簿和待转移的工作簿放在同一个文件夹内; (2)上述代码要实现的功能是,将同一个文件夹内所有工作簿(目标工作簿除外)的第一张工作表拷贝到目标工作簿内,并将表名设置为拷贝前所属的工作簿名称...转移前: 转移后: 参考资料: [1] 如何使用Excel VBA将多个工作簿的全部工作表合并到一个工作簿中(https://zhuanlan.zhihu.com/p/76786888)

6.1K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    VBA专题10-25:使用VBA操控Excel界面之一个示例程序

    学习Excel技术,关注微信公众号: excelperfect 在前面的一系列主题中,你已经学到了很多小的修改工作簿外观的VBA代码。下面,我们将介绍一个简单的示例程序,实现下面的功能特点: 1....当打开工作簿时, 1.1 激活特定的工作表(名为Sample)。 1.2 开始的3行被冻洁。 1.3一个特定的行(行50)向上滚动并成为解冻窗格的顶部行。...1.4 活动工作表的滚动区域限制为某个单元格区域(A4:H100)。 1.5 一个自定义选项卡(名为Custom)被激活。...创建一个新工作簿,将其保存为启用宏的工作簿。 2. 右击工作表选项卡,选择插入来添加一个图表工作表。 3. 重命名工作表为Sample、Sheet1和Sheet2。 4....激活工作表Sheet1,选择一个单元格区域,在“名称”框中输入“Sheet1!MyRange”来命名为一个工作表级的名称。 5. 关闭该工作簿,然后在Custom UIEditor中打开该工作簿。

    2.4K10

    Excel事件(三)工作簿事件

    大家好,上节介绍工作表事件,本节将介绍工作簿事件,工作簿数量较多,但并没有工作表事件常用,只简单介绍几个常用的工作簿事件。...三、常见工作簿事件 1、open事件 打开工作簿时,将触发此事件,此事件中可以写入一些只需执行一次得代码。...比如打开工作簿时,如果用户始终按住shift键,是可以跳过open事件的。) 事件代码较简单,举个简单示例,比如打开工作簿时,选中固定的工作表。...2、activate事件 activate事件是在激活一个工作簿时触发的事件,那么工作簿激活包括两种情况,一、工作簿打开时,在open事件之后发生该操作。...由于open事件可能被用户跳过,所以系统设置之类的初始化代码建议方在工作簿activate事件中。)举简单示例: 当该工作簿被激活时,就可以触发事件的代码。

    2.2K40

    Workbook工作簿对象方法(二)

    大家好,上节介绍过部分工作簿对象的常用方法-创建和打开,本节将继续介绍工作簿对象的激活、保存和关闭方法。...三、工作簿对象activate方法 在使用时可打开多个excel工作簿文件,但只有一个excel文件是活动状态。...当需要改变excel文件的活动状态时,可以使用workbooks集合的activate方法来激活一个工作簿。 workbooks(“工作簿名称”).activate 方法较简单,这里不做演示。...四、工作簿对象save方法 保存excel工作簿,在VBA中主要是通过workbook工作簿对象的save方法和saveas方法 代码thisworkbook.save 表示保存代码所在的工作簿。...在关闭工作簿时,如果excel表有修改且没有保存,那么系统会在关闭前弹窗提示是否需要保存。如果不希望出现弹窗,可以通过设置close方法的参数来修改。 下面看下close方法的完整格式。

    4.8K20

    Workbook工作簿对象基础

    一、工作簿对象的引用 一个工作簿对象workbook实际就是一个excel文件,在vba代码使用时引用它主要有两种方式,一种是通过工作簿对象名称,一种是是通过index索引号。...Workbooks("vba.xlsm").Worksheets.Count表示统计vba.xlsm工作簿对象的普通工作表的数量,在引用工作簿对象时,表示方法为:Workbooks("vba.xlsm"...即该工作簿当前是被激活的状态,使用activeworkbook来表示。 在workbook工作簿对象层级上为application主程序对象,在代码中可以选择性省略。...通过set语句将当前活动工作簿的活动工作表赋值给sht1,Set sht1 = ActiveWorkbook.ActiveSheet (复习下对象变量的赋值) 最后在立即窗口㕜显示当前工作簿的名称以及当前活动工作簿的活动工作表的名称...定义变量i为字符串变量后,将thisworkbook对象,即代码所在工作簿的name名称赋值给变量i,最后在立即窗口中显示。当前代码所在的工作簿的名称为vba.xlsm。

    3K30

    Excel事件(四)事件顺序

    如果有多个工作簿,则切换工作簿时也将产生该事件 3、workbook_beforesave事件:保存工作簿之前产生该事件 4、workbook_beforeclose事件:关闭工作簿之前产生该事件 5、...workbook_deactivate事件:关闭工作簿时,在beforeclose事件之后产生该事件,如果有多个工作簿,在切换工作簿时,非激活状态的工作簿将产生该事件。...工作表事件顺序 工作表的事件不多,但操作工作表时也可能触发一些工作簿事件,下面会列出一些常用工作表事件的产生顺序 第一种情况:当修改单元格中的内容后,再改变活动单元格时事件的产生顺序如下: worksheet_change...下面先演示一个错误示例(无法停止,只能关闭excel文件。请勿模仿)。 在相应的工作表中,当用户更改了单元格的内容时,会第一次触发worksheet_change事件。...所以正确使用方法,就是用户更改单元格触发worksheet_change事件时,在代码中把事件触发关闭。然后运行修改代码后,再恢复事件的触发。代码就正常的运行。

    2.4K30

    Excel编程周末速成班第22课:使用事件

    一种方式是根据接收事件的对象来组织事件,如下所示: 应用程序事件 工作簿事件 工作表事件 用户窗体和控件事件 非对象事件 非对象事件是一个特殊类别,其中包含不与特定对象关联的事件。...随后的内容将提供了有关事件放置的一些具体建议,这里是一些准则: 用户窗体(及其控件)的事件过程应始终放在用户窗体模块本身中。 工作簿、工作表或图表的事件过程应始终放置在与该工作簿关联的工程中。...下面是一个示例:将在工作簿中添加新工作表时,将按以下顺序触发下列三个应用程序级事件: 当添加新的工作表时,将发生WorkbookNewSheet。...当停用先前处于活动状态的工作表时,将发生SheetDeactivate。 当激活新工作表时,将发生SheetActivate。...当事件过程中的代码直接或间接导致再次触发同一事件时。 下面是一个例子。 只要修改工作表中的数据,就会触发Worksheet_Change事件。

    2.8K10

    Excel编程周末速成班第21课:一个用户窗体示例

    长时间盯着工作表行和列的网格可能会导致疲劳并增加出错的机会,设计良好的用户窗体使查看更容易。 更高的准确性。你可以编写代码以确保将每一项数据放置在工作表中的合适的位置,手动输入更容易出错。 数据验证。...工作簿用于维护一组人的姓名和地址数据,该工作簿名为Addresses.xlsm,数据所在的工作表也称为Addresses,该工作表包含各种数据项的列标题,如图21-1所示。...步骤1:创建工作簿 要完成的第一个任务是创建Addresses工作簿。按照下面的步骤: 1.启动Excel以打开一个新的空白工作簿。...修改代码使之也可以接受数字键盘输入是一个很好的编程练习。 步骤5:编写数据验证代码 当用户单击“下一步”或“完成”按钮时,验证代码将检查数据。...你可能已经注意到“完成”和“下一步”按钮共享一个任务,该任务正在工作表中输入经过验证的数据。每当需要在不止一种情况下执行任务时,程序员都会将此视为将所需代码放入一个过程中的机会。

    6.1K10

    Excel VBA编程

    激活工作簿 保存工作簿 close——关闭工作簿 worksheet对象 add方法新建工作表 设置name属性,更改工作表的标签名称 用delete方法删除工作表 激活工作表的两种方法 用copy方法复制工作表...将工作簿中的每张工作表都保存为单独的工作簿文件 将多个工作簿中的数据合并到同一张工作表中 为同一工作簿中的工作表建一个带链接的目录 执行程序的自动开关——对象的事件 让excel自动相应我们的操作 使用工作表事件...代码窗口】的【事件】列表框或VBA帮助中查看这些事件 常用的worksheet事件 事件名称 时间说明 activate 激活工作表时发生 beforeDelete 在删除工作表之前发生 beforeDoubleClick...在保存工作簿之前发生 Deavtivate 在工作簿状态作为非活动状态时发生 NewChart 在工作簿新建一个图表时发生 Newsheet 在工作簿新建一个工作表时发生 open 打开工作簿时发生...SheetPivotTableUpdate 当更新任意数据透视表时发生 sheetSelectionchange 当任意工作表中的选定区域发生更改时发生 WindowActivate 在激活任意工作簿窗口时发生

    45.7K33

    Worksheet工作表对象方法

    两段代码中activate和select方法的结果相同。都是将workshets(1)工作表对象激活。 那么两种方法有什么区别呢?...区别主要有两点:1、对于隐藏的工作表,激活只能使用activate方法。2、需要选中多张未隐藏的工作表对象时,则需要使用select方法,而activate方法只能激活一个工作表对象。...如果没有指定参数,Excel将创建一个包含所复制工作表的新工作簿。...如果没有指定before和after参数时,工作表会复制到新的工作簿中。演示如下“,原表中依然保留“汇总表“。 五、move方法 工作表的move方法时移动工作表的操作。...如果没有指定参数,Excel将创建一个包含所移动的工作表的新工作簿。原表中不保留。 如果不指定参数,那么会将表移动到新建的工作表中。

    2.2K10

    Workbook工作簿对象方法(一)

    大家好,前面介绍了工作簿对象的属性,本节开始介绍工作簿对象的常用方法。这些常用方法可以实现平时用手工的新建、打开、激活、保存excel表等功能。...代码为workbook.add [Template] 1、参数可省略,add方法不加参数时,excel创建新的空工作簿,自动将工作簿命名为“BookN”,其中N为顺次的数字,(可以通过application...常量名称值对应格式如下表,了解下即可,平时通常使用工作表常量。 不过通常创建新工作簿是分配一个对象变量的方式来创建,这样更容易对新工作簿进行设置。下面我们通过示例来演示。...二、工作簿对象open方法 在使用EXCLE文件时,在VBA代码中打开工作簿是通过workbooks集合的open方法。...1、参数FileName必需,指定一个字符串,代表要打开的工作簿文件名。 2、参数UpdateLinks可选,指定文件中外部引用(链接)的方式。如果忽略该参数,那么将提示用户指定如何更新链接。

    6.6K40

    EXCEL VBA语句集300

    VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 ...(8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save...=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count...Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count...,都会强制计算该函数 Application.Volatile False ‘只有在该函数的一个或多个参数发生改变时,才会重新计算该函数  定制模块行为 (101) Err.Clear

    2K41

    VBA专题10-23:使用VBA操控Excel界面之添加动态菜单

    下面介绍一个简单的使用动态菜单控件示例,在工作簿中为三个工作表(名为Data,Analysis,Reports)的每个显示不同的菜单。 1. 创建一个新的工作簿,将其保存为启用宏的工作簿。 2....分别重命名工作表为Data、Analysis和Reports。 3. 关闭该工作簿,然后在Custom UIEditor中打开。 4....下面展示了选择不同的工作表时的菜单内容: 640.gif 保留自定义复选框的勾选条件 在上面的示例XML和VBA代码中,当用户在工作表Data中单击动态菜单中的复选框后,复选框会相应地显示勾选或者取消勾选...然而,如果用户在设置勾选该复选框后,通过单击工作表标签激活其他工作表,那么动态菜单被无效,与菜单相关的任何数据(包括复选框的勾选条件)将被销毁。...当重新激活工作表Data时,通过调用GetMenuContent过程会重新创建菜单,而复选框会重置为其默认值(即,取消勾选条件)。

    6.2K20

    VBA专题10-20:使用VBA操控Excel界面之隐藏和取消隐藏控件、组和选项卡

    如果活动工作表不是标准工作表,就隐藏该组,否则该组可见。 注意,当打开工作簿时,创建ribbon对象。编辑VBA代码可能销毁这个新创建的对象。...试图使与销毁对象相关的控件无效是不可能的,唯一的办法是重新创建ribbon对象重新打开该工作簿。 当激活图表工作表时,“开始”选项卡中的“对齐方式”组被隐藏,如下图所示: ?...例如,按Alt+I+S将显示“符号”对话框,按Alt+F1将插入一个空的嵌入式图表并显示“图表工具”上下文选项卡,右击工作表单元格将显示单元格上下文菜单和Mini工具栏。...当打开工作簿或者当其中一个或两个控件被无效时执行该回调。...下面展示了一个示例,当活动工作表不是标准工作表时隐藏自定义选项卡。 示例XML代码: ?

    8.1K20

    Excel事件(一)基础知识

    1、工作簿事件 工作簿事件是发生在特定的工作簿中,工作簿事件代码必须在Thisworkbook对象代码模块中编写,比如open(打开工作簿),beforeclose(关闭工作簿)和sheetactive...(激活任何一张工作簿)等。...如工作簿事件代码必须在Thisworkbook对象代码模块中编写,工作表事件代码必须在对应工作表的代码模块中编写,而窗体及窗体上的控件事件的代码必须编写在响应的用户窗体的代码模块中。...当你选中一个事件之后,代码窗口中会自动生成事件过程的外部结构,在事件过程中编写响应该事件的代码即可。 演示二:工作表对象事件 编写工作表事件代码时,首选要明确是哪一张工作表。...窗体创建后,编写窗体和代码的事件代码时,就需要打开窗体的代码窗口。在窗体上双击即可。或者在工程资源管理器,右侧选中相应的窗体,示例中只有一个即userform1。鼠标右键单击选择查看代码。

    2.2K40

    一起学Excel专业开发18:Excel工时报表与分析系统开发(2)——创建特定应用加载宏(续)

    将工时输入工作簿中的副本保存到预先设定好的合并区 图1所示的自定义工具栏中的第一个按钮的作用是将工时输入工作簿的副本保存到合并区,其代码如下: '保存已完成的工时输入工作簿副本到指定的合并位置 Public...bIsTimeEntryBookActive = (wkbBook.Name= Application.ActiveWorkbook.Name) End If End Function 在确认工作簿激活后...如果存在输入错误,则向用户显示出错信息并退出过程,否则就为工作簿创建一个唯一的名称,然后在注册表中查询合并区的路径。如果合并区的路径并未保存到注册表,则会给出提示信息并要求用户指定其路径。...允许用户向“工时输入”工作表中添加更多的数据输入行 图1所示的自定义工具栏中的第二个按钮可用来增加数据输入区的行数,代码如下: '允许用户在工时输入表数据区底部插入空的数据输入行 Public Sub...3.将新添加行中的数据全部清除,为数据输入做好准备。 注意,在插入新行之前先删除工作表滚动区域设置,插入新行后再重新添加滚动区域设置。如果不这么操作,那么在插入新行时工作表滚动区无法进行正确调整。

    1.3K20

    问与答57: 如何实现打开工作簿后自动跳转到当前日期所在列?

    学习Excel技术,关注微信公众号: excelperfect Q:在Excel工作表中的第1行的每一列,都是按顺序排列的日期,如何在打开工作簿时自动跳转到当前日期所在的列?...如下图1所示,如果今天是2019年4月6日,打开工作簿后自动选择这一列。 ? 图1 A:很简单。...rngSearch.Find(Date).Activate End Sub 代码在工作簿打开时,先确定工作表Sheet1的第一行中所有已使用的单元格区域,然后使用Find方法在该区域查找到当前日期...,并激活当前日期所在的单元格。...注意,代码要放置在ThisWorkbook模块中。 代码的图片版如下: ? 本文属原创文章,转载请注明出处。

    1.4K30
    领券