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

Excel VBA将指定的工作表集复制到新工作簿/从副本中排除工作表

Excel VBA可以使用以下代码将指定的工作表集复制到新工作簿中:

代码语言:txt
复制
Sub CopyWorksheetsToNewWorkbook()
    Dim wbSource As Workbook
    Dim wbNew As Workbook
    Dim ws As Worksheet
    Dim wsCopy As Worksheet
    
    ' 设置源工作簿
    Set wbSource = ThisWorkbook
    
    ' 创建新工作簿
    Set wbNew = Workbooks.Add
    
    ' 循环复制工作表
    For Each ws In wbSource.Worksheets
        ' 排除不需要复制的工作表,比如"Sheet1"
        If ws.Name <> "Sheet1" Then
            ws.Copy After:=wbNew.Sheets(wbNew.Sheets.Count)
        End If
    Next ws
    
    ' 保存新工作簿
    wbNew.SaveAs "C:\目标路径\新工作簿名.xlsx"
    
    ' 关闭新工作簿
    wbNew.Close SaveChanges:=False
    
    ' 释放对象变量
    Set wbSource = Nothing
    Set wbNew = Nothing
End Sub

这段VBA代码实现了将源工作簿中除了名为"Sheet1"的工作表外的所有工作表复制到一个新的工作簿中。你可以根据自己的需求修改代码中的路径和文件名。

Excel VBA中的相关对象有Workbook(工作簿)、Worksheet(工作表),通过操作这些对象可以完成对Excel文件中各个工作表的处理。

这个功能在实际的办公场景中非常实用,比如当你需要将一个Excel文件中的多个工作表分离出来单独保存、共享给其他人员或用于不同的报表生成时,使用VBA代码可以快速自动化完成这个任务。

腾讯云提供的与Excel相关的产品是腾讯文档,它是一款基于云的协同办公工具,可以实时协作编辑、分享文档、表格和演示文稿。你可以在腾讯云官网上了解更多关于腾讯文档的信息和功能。

腾讯文档介绍链接:https://cloud.tencent.com/product/txcollaboration

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

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

4K11

VBA: 多个工作簿第一张工作合并到一个工作簿

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

5.8K11
  • 快速汇总多个工作簿工作数据(Excel工具推荐)

    有时候我们会遇到这种问题: 很多数据散落在很多工作或者工作簿,由于某项工作我们需要将这些数据做个汇总。...最笨办法是挨个打开这些工作簿,手动数据源串联起来,然后做数据透视。可是 1.有时候数据源过大,超出单个Excel文件承载范围,你无法串联。...2.右侧列出了涉及工作所有字段,你可以只选你需要字段进行显示。...3.可以看到有“插入工作簿名”,“插入工作名”按钮,这两个按钮意思是是否需要将工作簿/工作名称作为数据透视字段,此处我们假设想看各月汇总情况,因此需要点击“插入工作簿名”。...点击更改数据源-链接属性,弹出以下对话框 刚才复制代码粘贴到“命令文本“,点“确定“。

    10.8K10

    Excel应用实践21:实现工作簿所有工作多值替换

    学习Excel技术,关注微信公众号: excelperfect 有两个工作簿,一个工作簿存放着要查找并替换成文本,如下图1所示,列A是要查找文本,列A查找到文本替换成列B相应文本,例如...,找到Excel”替换成“完美Excel”。...图1 另一个工作簿是我们要替换其文本工作簿,我们要在该工作簿所有工作查找上图1列A值并将找到文本替成列B文本,如图2所示。 ? 图2 要实现结果如下图3所示。 ?...在图1所示工作簿,打开VBE,插入一个标准模块,输入代码: '查找并替换指定工作簿多个文本 Sub MultiFindReplace() Dim ReplaceListWB As Workbook...选择工作簿文件后,根据上图1工作文本自动对该工作簿文本进行查找和替换操作。 ? 图4 代码图片版如下: ?

    3K10

    yhd-VBA从一个工作簿工作查找符合条件数据插入到另一个工作簿工作

    今天把学习源文件共享了出来,供大家学习使用 上次想到要学习这个 结合网友也提出意见,做一个,如果有用,请下载或复制代码使用 【问题】我们在工作中有时要在某个文件(工作簿查找一些数据,提取出来...想要做好了以后同样工作就方便了 【想法】 在一个程序主控文件 设定:数据源文件(要在那里查找工作簿) 设定:目标文件(要保存起来那个文件) 输入你要查找数据:如:含有:杨过,郭靖数据。...要复制整行出来 主控文件设定如图 数据源文件有两个工作 查找到"郭靖"数据保存到目标文件【射雕英雄传】工作 查找到"杨过"数据保存到目标文件【第一个】工作 【代码】 Sub...从一个工作簿工作查找符合条件数据插入到另一个工作簿工作() Dim outFile As String, inFile As String Dim outWb As...MsgBox ("一个也没找到") End If '==end=工作内部

    5.3K22

    Excel应用实践16:搜索工作指定列范围数据并将其复制到另一个工作

    学习Excel技术,关注微信公众号: excelperfect 这里应用场景如下: “在工作Sheet1存储着数据,现在想要在该工作第O列至第T列搜索指定数据,如果发现,则将该数据所在行复制到工作...用户在一个对话框输入要搜索数据值,然后自动满足前面条件所有行复制到工作Sheet2。” 首先,使用用户窗体设计输入对话框,如下图1所示。 ?...Sheet1 Set wks = Worksheets("Sheet1") With wks '工作最后一个数据行 lngRow = .Range(...Sheet2 Sheets("Sheet2").Cells.Clear '获取数据单元格所在行并复制到工作Sheet2 For Each rngFoundCell...End If Loop End If Set FindAll = ResultRange End Function 这是一个通用函数,直接拿来使用就行了,可用来在指定区域查找并返回满足条件所有单元格

    6K20

    Excel应用实践18:按照指定工作数据顺序对另一工作数据排序

    学习Excel技术,关注微信公众号: excelperfect 我数据库中导入数据到工作,本来数据库数据顺序是排好了,然而导入工作后数据顺序变乱了。...如果在工作中使用复制粘贴来重新恢复固定顺序,将会花费大量时间,能否使用VBA快速完成排序,详情如下。 下图1“固定顺序”工作为数据本来应该顺序: ?...图1 图2“整理前”工作为导入数据后顺序: ? 图2 可以看出,“整理前”工作列顺序被打乱了,我们需要根据“固定顺序”工作顺序“整理前”工作恢复排序。...For i = 1 To lngLastFixed SearchHeader =wksYesOrder.Cells(1, i) '在"整理前"工作查找...lngLastVariable)) _ .Find(SearchHeader, LookIn:=xlValues, LookAt:=xlWhole) '如果找到则将该列复制到

    2.9K20

    Excel应用实践08:主表中将满足条件数据分别复制到其他多个工作

    如下图1所示工作,在主工作MASTER存放着数据库下载全部数据。...现在,要根据列E数据前12列数据分别复制到其他工作,其中,列E数据开头两位数字是61单元格所在行前12列数据复制到工作61,开头数字是62单元格所在行前12列数据复制到工作62...,同样,开头数字是63复制到工作63,开头数字是64或65复制到工作64_65,开头数字是68复制到工作68。...图1 用来完成上述工作VBA代码如下: Sub MasterDataToSheets() Dim x Dim i As Long Dim ii As Long Dim...个人觉得,这段代码优点在于: 数据存储在数组,并从数组取出相应数据。 数组数据直接输入到工作表单元格,提高了代码简洁性和效率。 代码适当修改,可以方便地实现类似的需求。

    5.1K30

    Excel编程周末速成班第3课:Excel对象模型

    引用工作 你已经看到了使用创建工作时返回引用或Worksheets集合获取引用来引用工作簿特定工作几种方法。...复制和移动工作 可以整个工作复制或移动到原始工作簿位置或其他工作簿,其语法如下(使用Move方法移动工作;语法与Copy相同): 工作.Copy(Before,After) 工作是对要复制工作引用...如果要复制到原始工作簿某个位置,使用参数Before或参数After(但不能两个都使用)指定要在其之前或之后放置复制工作现有工作。...要将工作复制到另一个工作簿,省略After和Before参数。Excel创建一个工作簿,然后工作复制到其中。 提示:无法工作直接复制或移动到现有工作簿。...为此,必须使用Range对象数据复制到Windows剪贴板,然后数据粘贴到位置。有关详细信息,请参见本书后续内容。 要点回顾 你编写任何VBA程序都将取决于Excel对象模型。

    5.1K30

    使用VBA合并工作

    标签:VBA 多个Excel工作(子工作获取信息,并用子工作所有数据填充汇总工作(父工作),这是很多朋友会提到常见要求。...如果部分数据是添加新工作工作簿而增长,那么获得这些数据汇总非常方便,例如,添加单独工作,包含新月份数据。...工作信息添加到汇总工作一种非常快速方法是遍历工作簿所有工作,使用VBA合并数据。...图1 工作结构如下图2所示。 图2 数据必须所有子表输入到上图2绿色区域。 这里技巧是过程运行时排除汇总表,以便仅子表或原始数据复制到汇总表。...上面的过程首先将清除Summary工作,但标题保持不变,以便数据粘贴到该工作。 此外,还可以多个工作数据复制到Summary工作某个单元格区域底部。

    1.9K30

    Excel数据分割(实战记录)

    End Sub 请按照以下步骤操作(Sheet): 打开Excel,按下ALT + F11打开VBA编辑器。 在左侧“项目资源管理器”窗格,找到你工作簿,并双击打开。...End Sub 请注意,此代码创建工作簿,并在每个新工作簿复制相应数据。你可以根据需求修改代码保存路径和文件名。运行代码后,显示一个弹出窗口,指示成功分割为多少个。...End Sub 这段代码将会根据每个起始行和结束行,原始数据对应部分复制到,保证每个数据只出现在一个表格,同时每个包含连续10行数据。...请注意,在代码,我假设原始数据第一行开始,且每个都保存为单独Excel文件。你可以根据实际需求进行修改。...End Sub 这段代码在每个通过标题行和对应数据行复制到工作簿来实现分割。新工作簿第一行是标题行,接下来行是对应数据行。

    37920

    ChatGPT与Excel结合_编写VBA

    案例1 比如我需求是:写一个基本Excel vba宏,用于表格第3行到第9行每一行数据转换为一个工作簿 VBA宏如下: Sub SplitRowsToNewWorkbooks()...' 提示完成信息 MsgBox "已将行数据分割为工作簿并保存。"...End Sub 请将代码"路径\文件名.xlsx"替换为你希望保存路径和文件名。运行该宏后,会将第3行到第9行每一行数据复制到一个工作簿,并将其保存在指定路径下。...”生成表格,但“回炉再造”一遍就好,重要是学会ChatGPT与Excel结合来编写VBA宏 ---- 案例2 又比如我需求是:编写一个Excel VBA宏,工作薄,每个工作图片,移动到A1...End Sub 运行该宏后,它会遍历当前Excel工作簿每个工作,并删除每个工作所有图片。在删除图片之后,会弹出一个提示框显示操作已完成。

    62110

    ChatGPT与Excel结合_编写VBA

    案例1 比如我需求是:写一个基本Excel vba宏,用于表格第3行到第9行每一行数据转换为一个工作簿 VBA宏如下: Sub SplitRowsToNewWorkbooks()...' 提示完成信息 MsgBox "已将行数据分割为工作簿并保存。"...End Sub 请将代码"路径\文件名.xlsx"替换为你希望保存路径和文件名。运行该宏后,会将第3行到第9行每一行数据复制到一个工作簿,并将其保存在指定路径下。...”生成表格,但“回炉再造”一遍就好,重要是学会ChatGPT与Excel结合来编写VBA宏 ---- 案例2 又比如我需求是:编写一个Excel VBA宏,工作薄,每个工作图片,移动到A1...End Sub 运行该宏后,它会遍历当前Excel工作簿每个工作,并删除每个工作所有图片。在删除图片之后,会弹出一个提示框显示操作已完成。

    49920

    Excel VBA解读(135): 影响工作公式运用自定义函数效率Bug及解决方法

    本文聚焦于Excel中会影响到自定义函数Bug,并探讨如何避免它们。...在VBE存在一个小Bug:Excel每次在工作计算过程运行包含自定义函数公式时,包含自定义函数公式都会将VBE标题栏改更为“正在运行”,如下图1所示。 ?...图2 此时,Excel会在VBE标题栏名称显示工作簿名后显示[运行],这就需要VBE向Windows屏幕处理程序发送消息,并刷新包含VBE窗口。...如果Excel处于手动计算模式,可以捕获触发计算所有键击,并在VBA代码启动计算。...小结:如果需要在Excel中使用大量引用了VBA自定义函数公式,则需要使用“手动计算”模式,并在工作簿添加计算键捕获和处理程序。

    2.3K20

    常见复制粘贴,VBA是怎么做

    此外,它们被设计为特定工作复制到该示例工作簿另一个目标工作。 通过调整对象引用构建方式,可以轻松修改这些行为。...例如,通过限定指定目标单元格区域对象引用,可以单元格区域复制到其他工作工作簿。...因此,无论哪个Excel工作簿处于活动状态,引用都能正常工作Excel功能区复制命令 在使用VBA代码复制单元格区域之前,看看Excel功能区“复制”按钮命令。...示例1:复制单元格区域到剪贴板 首先,让我们看看如何示例工作和单价)所有项目复制到剪贴板。...Destination参数,工作“Sample Data”单元格区域B5:M107复制到工作“Example 2 - Destination”列B至列M: Sub Copy_to_Range

    11.8K20

    VBA技巧:复制多个工作

    标签:VBA 有时候,我们想要批量复制多个工作工作簿,可以使用VBA代码来实现。...例如,工作簿中有三个工作,其名称分别为:Data、完美Excel和Output,要将这三个工作一次复制到一个工作簿并保存,示例代码如下: Sub CopyMultiSheet() Application.ScreenUpdating...", "Output")).Copy 这里Sheets对象Copy方法在复制工作同时,会生成一个新工作簿,而Array方法会将工作组合到一起,就像我们在工作簿按Ctrl键同时选择工作标签一样...工作簿对象SaveAs方法存储新工作簿(使用工作Data单元格A1内容作为工作簿名称),而Close方法关闭新工作簿。...有兴趣朋友可以自己创建一个工作簿,按代码名称命名工作,然后将上述代码复制到VBE标准模块,运行代码试试看,这样就会对代码作用有更深理解。

    2.4K20

    VBA专题02:使用代码进行复制操作

    学习Excel技术,关注微信公众号: excelperfect 在Excel工作,复制粘贴是最常用操作之一。在已经输入数据,找到并复制想要数据,然后粘贴到指定地方,是再自然不过操作了。...或者工作一个单元格区域复制到同一工作另外单元格区域,或者工作一个单元格区域复制到另一工作单元格区域,甚至工作一个单元格区域复制到不同工作簿工作表单元格区域。...图2 使用数组 如下图3所示,工作Sheet4列A内容为“完美Excel复制到工作Sheet5。 ?...工作Sheet4数据存储到数组。...在使用VBA代码进行复制操作时,我们不需要先选择想要复制数据,也不需要选择或激活数据所在工作。 2. 在不同工作之间复制,或者在不同工作簿之间复制时,在前面加上相应工作工作簿名称。

    6.3K20
    领券