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

将工作表导出到除特殊工作表之外的新工作簿的宏

是一种用于自动化Excel操作的宏代码。它可以将当前工作表中的数据导出到一个新的工作簿中,但不包括特殊工作表(如隐藏工作表或保护的工作表)。

这个宏的实现可以通过以下步骤:

  1. 打开Excel,并按下Alt + F11进入Visual Basic for Applications(VBA)编辑器。
  2. 在VBA编辑器中,插入一个新的模块(Module)。
  3. 在模块中编写以下宏代码:
代码语言:txt
复制
Sub ExportToNewWorkbook()
    Dim ws As Worksheet
    Dim newWorkbook As Workbook
    Dim currentWorkbook As Workbook
    
    ' 获取当前工作簿
    Set currentWorkbook = ThisWorkbook
    
    ' 创建一个新的工作簿
    Set newWorkbook = Workbooks.Add
    
    ' 循环遍历所有工作表
    For Each ws In currentWorkbook.Worksheets
        ' 排除特殊工作表
        If ws.Visible = xlSheetVisible And ws.ProtectContents = False Then
            ' 复制工作表到新的工作簿
            ws.Copy After:=newWorkbook.Sheets(newWorkbook.Sheets.Count)
        End If
    Next ws
    
    ' 保存新的工作簿
    newWorkbook.SaveAs "新工作簿路径和文件名.xlsx"
    
    ' 关闭新的工作簿
    newWorkbook.Close
    
    ' 清理对象引用
    Set newWorkbook = Nothing
    Set currentWorkbook = Nothing
End Sub
  1. 修改代码中的"新工作簿路径和文件名.xlsx"为你想要保存新工作簿的路径和文件名。
  2. 按下F5运行宏代码。

这样,宏代码将会遍历当前工作簿中的所有工作表,将除特殊工作表之外的工作表复制到一个新的工作簿中,并保存在指定的路径和文件名下。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可靠、低成本的云端存储服务,用于存储和管理大规模的非结构化数据。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云云服务器(CVM):提供安全、高性能、可弹性伸缩的云服务器,用于托管应用程序、网站和服务。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:提供高性能、可扩展的关系型数据库服务,适用于各种规模的应用程序。详情请参考:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云人工智能平台(AI Lab):提供丰富的人工智能服务和开发工具,帮助开发者构建智能化的应用程序。详情请参考:https://cloud.tencent.com/product/ailab
  • 腾讯云物联网开发平台(IoT Explorer):提供全面的物联网解决方案,帮助开发者连接、管理和控制物联网设备。详情请参考:https://cloud.tencent.com/product/iotexplorer
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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文件承载范围,你无法串联。...可以看到 1.所有工作簿所有工作都显示在了左侧列表里。这个时候我们可以选择部分工作簿/工作进行汇总,也可以全选,看需求而定。此处我们全选。...3.可以看到有“插入工作簿名”,“插入工作名”按钮,这两个按钮意思是是否需要将工作簿/工作名称作为数据透视字段,此处我们假设想看各月汇总情况,因此需要点击“插入工作簿名”。...我们可以看到这样多个工作簿/工作数据就汇总到一起了,Expr1000是工作簿名称字段,我们可以看到各个月销售。

    10.8K10

    神奇AI编程小例子——合并两个工作簿工作到一个工作簿

    今天帮一个朋友干点活,涉及到了两个表格文件工作合并到一个工作簿,分别作为单独工作。...] # 创建目标工作簿 target_sheet = target_workbook.create_sheet(title=sheet_name) # 复制其他工作簿数据到目标工作簿...接下来,我们获取其他工作簿名,并使用create_sheet方法在目标工作簿中创建相应。 然后,通过遍历其他工作簿每个,我们可以复制数据并将其追加到目标工作簿对应中。...最后,我们保存目标工作簿,以便添加到文件中。 请确保在运行代码之前已经安装了openpyxl库。你可以使用pip命令进行安装,例如:pip install openpyxl。...这个示例代码适用于将其他工作簿所有追加到目标工作簿中。如果你只需要追加某个特定,可以根据需要做出相应修改。 代码几乎不用修改,完全能实现功能。

    26110

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

    学习Excel技术,关注微信公众号: excelperfect 有两个工作簿,一个工作簿中存放着要查找并替换成文本,如下图1所示,列A中是要查找文本,列A中查找到文本替换成列B中相应文本,例如...,找到“Excel”替换成“完美Excel”。...图1 另一个工作簿中是我们要替换其文本工作簿,我们要在该工作簿所有工作中查找上图1列A中值并将找到文本替成列B中文本,如图2所示。 ? 图2 要实现结果如下图3所示。 ?...).CurrentRegion '遍历要替换文本工作簿中所有工作 For Each wks In ReplaceInWB.Worksheets '使用替换文本来替换工作数据...选择工作簿文件后,根据上图1工作文本自动对该工作簿文本进行查找和替换操作。 ? 图4 代码图片版如下: ?

    3K10

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

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

    5.3K22

    隐藏工作簿中所有工作行列标题,VBA一次搞定

    标签:VBA 有时候,我们不需要看到工作行列标题,如下图1所示。 图1 此时,可以修改Excel设置来实现。...单击“文件——选项”,在“Excel选项”对话框中,单击左侧“高级”选项卡,在“此工作显示选项”中取消选取“显示行和列标题”前勾选,如下图2所示。...图2 可以看出,这个设置只对指定工作有效,如果要隐藏工作簿中所有工作行列标题,则要逐个选择工作,并取消该选项选择。 如果工作簿中有很多工作,这样重复操作就有点浪费时间了。...下面的代码隐藏工作簿指定工作所有工作行列标题: Sub HideHeadings() Dim wks As Worksheet Application.ScreenUpdating...= False '遍历工作簿工作 For Each wks In ThisWorkbook.Worksheets '名为"示例"工作除外 '你可以修改为自己工作

    1.9K20

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

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

    1.9K30

    【实战】多个不规则多级表头工作合并为一个规范一维数据结果

    最近在项目里,有个临时小需求,需要将一些行列交叉结构表格进行汇总合并,转换成规范一维数据结构进行后续分析使用。...从一开始想到使用VBA拼接字符串方式,完成PowerQueryM语言查询字符串,然后转换成使用插件方式来实现相同功能更顺手,最后发现,在当前工作薄里使用PowerQuery来获取当前工作其他工作内容...,也是可行,并且不需要转换智能就可以把数据抽取至PowerQuery内。...再最后,发现PowerQuery直接就支持了这种多工作合并,只要自定义函数时,定义参数合适,直接使用自定义函数返回一个结果,就可以展开后得到多行记录纵向合并(类似原生PowerQuery在处理同一文件夹多个文件纵向合并效果...整个实现过程,也并非一步到位,借着在知识星球里发表,经过各星友一起讨论启发,逐渐完善起来最终结果。探索是曲折,但众人一起合力时,就会有出乎意料精彩结果出来。

    2K20

    VBA技巧:工作中文本框里数字转化为日期格式并输入到工作表单元格

    标签:VBA,ActiveX控件 如下图1所示,工作中有一个名为“TextBox1”文本框,要将其中输入数字放置到工作表单元格B8中并转换成日期格式。...Sheet3") .Cells(8, 2) = Format(.OLEObjects("TextBox1").Object.Value, "yyyy-mm-dd") End With 反之,如果要想工作文本框显示单元格中日期...在实际应用开发中,万一碰到这种情况,就可以有现成代码参考了。...看着有点简单,但主要是理解工作ActiveX控件是如何进行引用,文本框控件中值是如何转换格式,既可以熟悉ActiveX控件在VBA中属性使用,也增加了处理类似情形经验。

    43010

    VBA代码库10:强制用户启用

    有时,必须确保用户在打开工作簿时启用,否则就不能实现工作簿效果。由于无法使用去打开,因此需要一种确保用户启用技术。...下面讲解方法隐藏“欢迎”工作(告诉用户启用之外所有工作,并在每次保存工作簿时强制执行该工作。如果用户在启用了情况下打开工作簿,则将不会隐藏所有工作。...还可以使用Excel VeryHidden属性来实现工作隐藏,这意味着不能使用Excel菜单来取消隐藏工作。但是,这只会影响该工作簿,因此用户可以使用另一个工作簿取消隐藏所有工作。...但是,在关闭文件时确实会产生一个非常小问题。如果用户尝试退出该应用程序,它将关闭工作簿,而不是Excel。再次退出完全关闭Excel。...工作簿中应该有一个名为“欢迎”工作,否则你要将代码前面的常量WelcomePage设置为用户没有启用提示工作名称。 注:本文代码整理自vbaexpress.com。

    2.4K40

    Excel教程 (介绍与基本使用)

    您需要学会利用”录制方法来学习:点击excel” 工具”下拉菜单中””下?quot;录制”,此后可象平时一样进行有关操作,待完成后停止录制。...R1C1:R4C1)” 但需注意是:当被引用工作名中含有某些可能引起公式歧义字符时,需要用单引号’工作名括起来。...R1C:RC[4])” 同样需注意是:当被引用工作簿名中含有某些可能引起公式歧义字符时,需要用中括号”[“、”]”及单引号’工作簿名括起来。...before:=Sheets(2) ‘当前工作移动至第2工作之前 3、命名 ActiveSheet.Name=”工作名” ‘当前工作命名为”工作名”   4、删除 可以用以下语句删除当前工作...excel工作簿操作主要为保存。

    6.4K10

    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

    VBA小技巧11:创建动态有效性列表

    在有些情况下,当工作簿发生变化时,有效性列表中项目随之更新是很有用。例如,如下图1所示,在“目录”工作中,使用数据有效性列出了工作簿中所有工作名称,这可用于对工作进行导航操作。...对于含有大量工作工作簿来说,这尤其有用。 ? 图1 当我们在工作簿中添加或者删除工作时,想要该有效性列表能够自动更新,如下图2所示。 ? 图2 可以使用VBA代码来实现。....AddType:=xlValidateList, Formula1:=strList End With Set wks =Nothing End Sub 代码中,遍历工作簿中所有工作...,“目录”工作之外工作名称使用“,”连接成字符串。...然后清除单元格C2中内容并删除其中存在任何有效性列表,并添加有效性列表。

    1.3K30

    EXCEL VBA语句集300

     工作簿 (8) Workbooks.Add() ‘创建一个工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1工作簿 (10...‘工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘当前工作簿最大化  工作 (18) ActiveSheet.UsedRange.Rows.Count...‘当前工作中已使用行数 (19) Rows.Count ‘获取工作行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘Sheet1命名为Sum...(74) Sheets(“Chart2”).ChartArea.Interior.ColorIndex=2 ‘更改图表工作中图表区颜色 (75) Charts.Add ‘添加图表工作...:D5”), _ PlotBy:=xlColumns ‘指定图表数据源并按列排列 (77) ActiveChart.Location Where:=xlLocationAsNewSheet ‘图表作为图表工作

    1.9K40
    领券