首页
学习
活动
专区
圈层
工具
发布

Excel-VBA复制工作表到新工作簿方法

在工作中我们常常会在一个工作簿的一个工作表中输入数据,再另存为一个新的工作簿。 如:在文件“自动工具.xlsx”中有一个工作表为“模板”。...我想在“模板”工作表中输入数据,再另存为一个新的文件为“小龙女.xlsx” 【知识点】 下面是本个收藏的代码,三种方法,以备用 【代码】 '方法一:复制工作表另存为新的工作簿 Sub copySaveAs...Filename:=ThisWorkbook.Path & "\小龙女.xlsx" ActiveWorkbook.Close SaveChanges:=True End Sub '方法二:复制工作表为新的工作表...,写入数据,再移动工作表另存为新的工作簿 Sub MoveSaveAs() wsh_num = Worksheets.Count Worksheets("模板").Copy After:...,再复制工作表到新工作簿中 Sub AddCopySaveAs() Path = ThisWorkbook.Path & "\" Set newwb = Workbooks.Add

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

    VBA: 在工作簿内复制用户窗体

    文章背景:Excel中,在创建完一个用户窗体(Userform)后,有时想要在此基础上,创建针对另一场景的用户窗体。那么,如何在工作簿内复制用户窗体呢?下面介绍两种办法。...(2)修改当前用户窗体的名称,避免导入文件时,出现同名文件已存在的错误。 (3)选中窗体,点击右键,选择导入文件,找到步骤(1)的窗体文件,将该文件导入。...方法二: 将用户窗体移到新工作簿内,然后再将该用户窗体移回原工作簿。为避免移入错误,移入前,需要修改新工作簿内用户窗体的名称。具体步骤如下: (1)新建一个启用宏的工作簿(*.xlsm)。...(2)选中需要复制的用户窗体,将该窗体拖动到新工作簿内。 (3)修改新工作簿内用户窗体的名称,避免移入窗体时,出现同名窗体已存在的错误。...(4)将新工作簿的用户窗体拖动到原工作簿内。 视频演示:http://mpvideo.qpic.cn/0bf2suaaaaaatqal5kdw5fqvbfodackqaaaa.f10002.mp4?

    2.2K20

    Excel实战技巧67:在组合框中添加不重复值(使用ADO技巧)

    在工作表中有一个组合框,需要包含列A中的省份列表,但是列A中有很多重复的省份数据。 ? 图1 这里可以使用简单的记录集快速提取不同的省份名并将其装载到组合框。...单击功能区“开发工具”选项卡中“插入”按钮下ActiveX控件中的“组合框”,在工作表中插入一个组合框,可以看到Excel将其自动命名为“ComboBox1”,如下图2所示。 ?...可以在任何事件或过程中调用它们,例如工作簿打开事件、查询刷新事件或者按下按钮后。 运行或调用过程后,在工作表中单击组合框右侧下拉按钮,结果如下图3所示。 ?...2.Data Source:告诉VBA在哪里找到包含所需数据的数据库或工作簿。使用Data Source参数,要传递完整的数据库或工作簿路径。...3.Extended Properties:当连接到Excel工作簿时使用。告诉VBA数据源来自数据库。

    7.8K10

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

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

    6.6K11

    VBA实战技巧:正确登录后才能使用Excel工作簿

    当你打开这个工作簿时,Excel会弹出一个登录框,如下图1所示。当你输入正确的用户名和密码后,才能使用这个工作簿,否则会退出。...图1 这个工作簿中有一个名为“用户中心”的工作表,用来存放用户名、密码等信息,如下图2所示。 图2 打开VBE,插入一个用户窗体,在其中放置标签、文本框、按钮等控件,并将相关控件命名。...= xlDisabled Sheets("数据").Activate Sheets("用户中心").Visible= xlVeryHidden login.Show End Sub 关闭工作簿...,重新打开,会弹出上图1所示的登录窗口。...注:建议你动手按照文中的介绍实现图1所示的效果。当然,如果想下载示例工作簿,请到知识星球完美Excel社群中下载。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    1.7K21

    matinal:Excel用VBA代码一键合并汇总多个工作簿

    有时候,你需要将几十个工作簿中的内容,快速汇总至合并至一个工作簿,如果手动一个复制粘贴,那心里有苦说不出。。。...今天将大家用VBA一键合并,只需要几秒种,为了测试这段代码,我们新建了4个工作簿在文件夹中,数据都是模拟的,做试验 一键合并代码操作如下所示: 我们看原始表格数据,其中,第1个工作簿有点特殊,这个工作簿中...,有两个工作表,第1个工作表的内容是: 第2个工作表的内容是: 第2,3,4个工作簿中都是仅有1个工作表,如下所示: 通过代码,我们一键可以合并,得到结果,这个汇总的结果有两个特点 1、最后一列,还会显示这些数据的来源是哪个工作簿...,哪个表名的。...如下所示: 在Excel菜单栏中,点击开发工具,打开VBA,输入如下代码: 其中代码如下所示: Sub 合并目录所有工作簿全部工作表() Dim MP, MN, AW, Wbn, wn Dim Wb

    2.3K50

    VBA技巧:在不保护工作簿的情况下防止删除工作表

    标签:VBA 下面介绍一个使用少量VBA代码实现的简单实用的小技巧。 通常情况下,我们执行“保护工作簿”命令后,此时删除工作表的命令变成灰色,用户就不能轻易地删除工作表了。...然而,这样也不能进行插入、移动或复制工作表的操作了。 如果想要在不保护工作簿的情况下防止用户删除工作表,而且允许用户插入工作表并对其进行重命名,也允许用户移动或复制工作表,有没有什么好的方法实现?...在工作簿的ThisWorkbook模块中粘贴或输入下面的代码: Option Explicit Private Sub Workbook_SheetDeactivate(ByVal Sh As Object..." End Sub Sub RemoveProtection() '撤销保护工作簿 ThisWorkbook.Unprotect End Sub 此时,用户再要删除该工作簿中的工作表,就会弹出...的警告信息(如下图1所示),但用户仍可以在该工作簿中进行添加工作表、移动或复制工作表、对工作表重命名等操作。 图1

    3K30

    使用ADO和SQL在Excel工作表中执行查询操作

    学习Excel技术,关注微信公众号: excelperfect 我们可以将存储数据的工作表当作数据库,使用ADO技术,结合SQL查询语句,可以在工作表中获取满足指定条件的数据。...首先,需要添加ADO引用。在VBE中,单击菜单“工具——引用”,在“引用”对话框中,找到并选取“Microsoft ActiveX Data Objects 6.1 Library”,如下图1所示。...图1 下面,需要将工作表Sheet2的数据中物品为“苹果”的数据行复制到工作表Sheet3中,如下图2所示。 ?...SQL查询语句为: query = "Select * from [" & wksData.Name _ & "$] Where 物品='苹果' " 在工作表wksData中查询物品为“苹果”的记录...图3 关于ADO对象模型及其属性和方法的应用,以及SQL查询语句语法,有兴趣的朋友可以参考相关资料进一步了解。

    6.6K20

    VBA专题10-4:使用VBA操控Excel界面之设置工作簿视图和窗口

    下面是设置工作簿视图和窗口的一些VBA代码。 工作簿视图 可以选择使用普通视图、页面布局视图、分页预览视图来显示工作表。...5行上下分格 With ActiveWindow .SplitRow = 5 .SplitColumn = 0 End With '拆分活动窗口中的活动工作表在第4列左右分格 With...= True End With '当滚动工作表时第1行和第2行保持可见 '在第1列冻结活动窗口中的活动工作表 '即第1列被冻结 With ActiveWindow .SplitRow = 0...= 2 .SplitColumn = 1 .FreezePanes = True End With 当冻结活动窗口的拆分窗格后,在滚动工作表时被冻结的列和行将保持可见。...属性可能初始化为True .Split = False End With 说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook

    4.8K20

    VBA与数据库——合并表格

    在Excel里,如果需要把多个工作表或者工作簿的数据合并到一起,用VBA来做一个程序还是比较容易的,在多个工作簿合并到一个工作簿和多个工作表合并到一个工作表里有过介绍,代码不算很复杂。...如果能保证列的一致性,使用ADO合并也是可以的。 合并主要是要用到union all关键字,如果是合并一个工作簿的工作表,sql语句是比较好写的。...如果是是多个工作簿数据源的时候,sql语句的用法: [Excel 12.0;Database=" & Workbook.FullName & ";].[" & Sheet.Name & "$] 代码的核心就是构建出...sql语句,首先遍历一个文件夹,获取到需要处理的Excel文件名称,然后按上面的语法构建sql语句,最后调用ado执行就可以了: Sub UnionAll() Dim strsql As String...如果有清楚的请指点一下。 另外在我电脑测试,普通的vba逐个打开工作簿,复制单元格内容的程序竟然比调用ado要快!这个倒是始料未及啊?

    5.6K31

    Excel实战技巧57: 标识并使用VBA代码识别特定的工作簿

    一种常用的方法是对工作簿文件添加自定义的文档属性,这样让代码在不打开工作簿的情况下判断是否是想要的工作簿。...为工作簿添加自定义文档属性 单击“文件——信息——属性——高级属性”,打开工作簿的“属性”对话框。...选取“自定义”选项卡,在名称文本框中输入属性名称,示例中是“MyTestBook”,在类型下拉列表中选择“是或否”,选取取值选项按钮中的“是”,单击“添加”按钮,如下图1所示,为该工作簿添加自定义文档属性...,测试工作簿中是否具有名为MyTestBook的属性,如果是,则弹出下图3所示的消息。...End If Next i End Sub 如果所选工作簿具有指定的属性,则弹出下图3所示的消息。 ?

    2.6K10

    Excel实战技巧64: 从工作簿中获取数据(不使用VBA)

    这是在研读《Escape From Excel Hell》时学到的技术,从本工作簿中或者其他工作簿中获取所需要的数据,以便于作进一步的分析或者绘制Excel图表。 下图1所示是用于获取数据的工作表。...用于输入的有4个单元格(背景色为橙色),其中单元格A6中输入源数据(即要从哪里获取数据)所在的工作簿名称;单元格A7中为源数据所在的工作表名称;单元格A8中为源数据起始单元格的名称;单元格C5中为数据所在列号...其中,SourceDataLocation为源数据工作表中数据所在区域的起始单元格名称。在本示例工作簿中,该单元格位置如下图2所示。 ?...如果在图1所示的工作表单元格A6中没有输入任何工作簿名(即留空),那么将获取当前工作簿中源数据工作表(如图2)的数据,如下图3所示。 ?...可以在完美Excel微信公众号底部发送消息: 获取数据 下载示例工作簿研究。

    4.4K10

    Excel小技巧78:恢复未保存的Excel工作簿

    excelperfect 我们可能碰到过这样的情形,正在编辑Excel工作簿时,Excel突然崩溃了(例如Excel老半天都没有响应)或者电脑突然断电了,这让我们来不及保存工作簿。...除此之外,还有一个“自动恢复例外情况”选项,可以帮助恢复文件的最后未保存版本(保存一次)。 默认情况下,上述选项都已被激活,并将未保存的工作簿连续保存在你的系统上。...当你正在处理尚未保存到任何位置的文件时,Excel崩溃了或没有保存就将其关闭了,此时,重新打开Excel,单击Excel左上角“文件——打开”,再单击右侧的“最近”,接着单击右下方的“恢复未保存的工作簿...图3 打开工作簿后,它会显示一条消息,提示你在使用该文件或对其进行任何更改之前先保存该文件。 ? 图4 注意:Excel保存为备份的文件为“xlsb”格式,因此在保存文件时确保使用正确的格式。...图5 此外,在Excel2010及以上的版本中,还可以重新恢复为工作簿以前的某个版本,可以在“文件——信息”下的“管理工作簿”中找到。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    2.9K00

    Excel小技巧79:如何跟踪Excel工作簿的修改

    Excel具有内置的跟踪功能,可以处理上述所有情况。你可以轻松地直接查看工作表上的所有更改,也可以接受或拒绝每个更改。关于Excel的跟踪功能,注意以下几点: 1....如果你对Excel工作表进行更改,然后在45天后再次打开该工作簿,则在关闭该工作簿之前,你将能够看到所有45天的更改历史记录。但关闭时,任何超过30天的更改历史记录都将消失。...这意味着下次打开它时,你将无法看到45天前所做的更改。 4. 无论何时开启跟踪,工作簿都将成为共享工作簿。这意味着多个用户将对文档进行更改。...单击“修订”按钮左侧的“共享工作簿”按钮。弹出“共享工作簿”对话框,单击“高级”选项卡,如下图5所示。 ? 图5 在这里,你可以将保存更改历史记录的天数更改为30天以外的天数。...图6 单击“确定”按钮,将添加一个名为“历史记录”的工作表,让你查看对该工作簿所做的所有更改,如下图7所示。 ? 图7 在某个时候,你需要接受或拒绝更改。

    9.6K30

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

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

    10K11

    Excel VBA常用功能加载宏——打开活动工作簿所在文件夹

    我们在使用电脑的时候,如果打开的窗口太多,任务栏会比较混乱,一般我们就会关闭一些不需要的窗口,比如文件夹等。...在使用Excel的时候,偶尔我们又需要打开一些工作簿的所在文件夹去操作,这时候找起来可能就有点麻烦了。...在VBA里使用过Workbook对象就能知道,调用Path属性就能获取到工作簿所在的文件夹,所以,使用VBA就可以快速打开活动工作簿所在的文件夹: ?...rbbtnOpenActiveWbPath" label="打开文件夹" size="large" onAction="rbbtnOpenActiveWbPath" imageMso="FileOpen" supertip="打开活动工作簿所在的文件夹..."cmd.exe /c explorer " & Path, vbNormalFocus End Sub 函数比较简单,就是获取活动工作簿的Path,然后调用Shell执行cmd命令。

    3.2K30

    3分钟写个VBA:Excel工作簿所有子表数据一键汇总

    今天同事问我,他要汇总一个工作簿里面十几张子表里面的数据到同工作簿的汇总表里面,怎么操作比较快?然后我就想到了VBA,3分钟给他写(录)了一个宏,一键完成所有数据汇总。...所以今天我就分享这个小技巧,不需要VBA脚本很熟悉的盆友也可以上手哦,非常简单易行。...1、首先,看看需求,有下面一张Excel工作簿,需要把除了【数据汇总】以外的三张子表里面的内容(可以更多的子表,但是这里只是举例三张子表),汇总到【数据汇总】,其中子表的数据格式是一样的,就是说表头是一样的...4、然后,点击【停止录制按钮】,在【数据汇总】工作表点击鼠标右键,点击【查看代码】。...第一种方法,回到工作簿,在开发工具,点击宏,选择对应的宏的名称,点击执行。 第二种方法,在开发工具,点击插入,选择第一个表单控件,在你想要放置的位置画个框,然后跳出弹窗。

    6.2K20
    领券