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

Vba:删除列表中未提及的excel工作表(列表中仅包含数值)

VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office应用程序的编程语言。它可以用于自动化和定制化Office应用程序,包括Excel。

针对你提到的问题,你想要删除一个Excel工作簿中未在给定列表中提及的工作表。下面是一个完善且全面的答案:

VBA代码示例:

代码语言:txt
复制
Sub DeleteUnmentionedSheets()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim sheetName As String
    Dim found As Boolean
    
    ' 定义要保留的工作表列表
    Dim keepSheets As Variant
    keepSheets = Array("Sheet1", "Sheet2", "Sheet3")
    
    ' 循环遍历所有工作表
    For Each ws In ThisWorkbook.Worksheets
        sheetName = ws.Name
        found = False
        
        ' 在保留的工作表列表中查找当前工作表
        For Each rng In ws.Parent.Range("A1:A" & ws.Parent.Cells(ws.Parent.Rows.Count, 1).End(xlUp).Row)
            If rng.Value = sheetName Then
                found = True
                Exit For
            End If
        Next rng
        
        ' 如果当前工作表不在保留的工作表列表中,则删除它
        If Not found Then
            Application.DisplayAlerts = False ' 禁用删除警告
            ws.Delete
            Application.DisplayAlerts = True ' 启用删除警告
        End If
    Next ws
End Sub

这段VBA代码会遍历当前工作簿中的所有工作表,并与给定的保留工作表列表进行比较。如果某个工作表的名称不在保留列表中,那么它将被删除。

使用方法:

  1. 打开Excel工作簿,按下Alt + F11打开VBA编辑器。
  2. 在VBA编辑器中,插入一个新的模块(如果没有)。
  3. 将上述代码复制粘贴到新的模块中。
  4. 修改keepSheets数组,将要保留的工作表名称添加到数组中。
  5. 按下F5运行代码,或者在开发工具栏中点击运行按钮。
  6. 未在保留列表中提及的工作表将被删除。

这段代码使用了VBA中的循环和条件语句来实现功能。它通过遍历工作表并在保留列表中查找工作表名称来判断是否删除工作表。如果找到了匹配的工作表名称,则将found变量设置为True,否则将其保持为False。最后,根据found变量的值来决定是否删除工作表。

这是一个适用于Excel的VBA解决方案,可以帮助你删除未在给定列表中提及的工作表。如果你对VBA有更多的问题或需要其他帮助,请随时提问。

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

请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估。

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

相关·内容

使用VBA删除工作多列重复行

标签:VBAExcel 2010发布以来,已经具备删除工作重复行功能,如下图1所示,即功能区“数据”选项卡“数据工具——删除重复值”。...图1 使用VBA,可以自动执行这样操作,删除工作所有数据列重复行,或者指定列重复行。 下面的Excel VBA代码,用于删除特定工作所有列所有重复行。...如果没有标题行,则删除代码后面的部分。...如果只想删除指定列(例如第1、2、3列)重复项,那么可以使用下面的代码: Sub DeDupeColSpecific() Cells.RemoveDuplicates Columns:=Array...(1, 2, 3), Header:=xlYes End Sub 可以修改代码中代表列数字,以删除你想要重复行。

11.3K30

VBA小技巧10:删除工作错误值

这里将编写VBA代码,用来删除工作指定区域中错误值,这在很多情况下都很有用。 如下图1所示,有一组数据,但其中有一些错误值,我们想要自动删除这些错误值。 ?...图1 删除错误值数据如下图2所示。 ? 图2 如果不使用VBA,可以使用Excel“定位”功能来实现。...如下图3所示,单击功能区“开始”“编辑”组“查找和选择——定位条件”,弹出“定位条件”对话框。在该对话框,选取“公式”“错误”前复选框,如下图3所示。 ?...图3 单击“确定”后,工作错误数据单元格会被选择,单击“Delete”键,删除错误值,结果如上图2所示。...函数来判断单元格是否是错误值,如果是,则设置该单元格为空。

3.4K30
  • Excel实战技巧55: 在包含重复值列表查找指定数据最后出现数据

    文章详情:excelperfect 本文题目比较拗口,用一个示例来说明,如下图1所示,是一个记录员工值班日期,在安排每天值班时,需要查看员工最近一次值班日期,以免值班时间隔得太近。...图1 下面,我们分别使用公式和VBA来解决。...组成数组,由于这个数组找不到2,LOOKUP函数在数组中一直查找,直至最后一个比2小最大值,也就是数组最后一个1,返回B2:B10对应值,也就是要查找数据在列表中最后值。....Cells(i, ColNum) Exit Function End If Next i End With End Function 然后,在工作像...Excel内置函数一样,使用公式: =LookupLastItem($D$2,$A$2:$B$10,2) 结果如下图4所示。

    10.8K20

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

    学习Excel技术,关注微信公众号: excelperfect 在前面的两篇文章,我们通过简单地修改VBA代码来使自定义函数运行得更快。...在VBE存在一个小Bug:Excel每次在工作计算过程运行包含自定义函数公式时,包含自定义函数公式都会将VBE标题栏改更为“正在运行”,如下图1所示。 ?...图2 此时,Excel会在VBE标题栏名称显示工作簿名后显示[运行],这就需要VBE向Windows屏幕处理程序发送消息,并刷新包含VBE窗口。...如果Excel处于手动计算模式,可以捕获触发计算所有键击,并在VBA代码启动计算。...小结:如果需要在Excel中使用大量引用了VBA自定义函数公式,则需要使用“手动计算”模式,并在工作簿添加计算键捕获和处理程序。

    2.3K20

    统计不同值7种方法

    标签:Excel技巧 很多时候,我们需要统计列表不同值个数,在Excel中有多种方法实现。 首先,我们来解释什么是不同值和唯一值。...当将计数取倒数时,会得到一个分数值列表每个不同值加起来就是1。然后,SUM函数将所有这些分数相加,总数就是列表不同项目的数量。...图5 方法4:使用数据透视 选择数据区域,单击功能区“插入”选项卡“表格”组“数据透视”,在“来自表格或区域数据透视”对话框,选取“现有工作”单选按钮,选取在工作中放置透视单元格位置...图6 在数据透视表字段,选取要获取不同值计数字段到行,如下图7所示。 图7 在工作,选择数据透视数据,可以在底部状态栏中看到计数值为4,即为不同值个数,如下图8所示。...图12 方法6:删除重复值 选择数据列表,单击功能区“数据”选项卡“数据工具”组删除重复值”命令,如下图13所示。 图13 在“删除重复值”对话框,单击“全选”,如下图14所示。

    2.3K10

    Excel VBA编程

    方法复制单元格区域 cut方法剪切单元格区域 用delete方法删除指定单元格 操作对象一些例子 根据需求创建工作簿 判断某个工作簿是否已经打开 判断文件夹是否存在指定名称工作簿文件 向打开工作簿输入数据...在VBAExcel工作簿,工作,单元格等都是对象,图表,透视,图片等也都是对象,甚至于单元格边框线,插入批注都是对象… 集合也是对象,它是对多个相同类型对象统称。...\template.xlsm" workbooks.add template := xlWBATChart '让新建工作簿包含图表工作 用add方法参数指定新建工作簿包含工作类型 参数值 工作簿包含工作类型...调用range对象delete方法可以删除指定单元格,但与手动删除单元格不同,通过VBA代码删除单元格,excel不会显示【删除】对话框。...想让excel删除指定单元格后,按自己意愿处理其他单元格,我们需要编写VBA代码将自己意图告诉excel

    45.5K33

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

    如果没有命名参数,则该方法只能根据其在参数列表位置来标识一个参数,因此你必须为要忽略所有可选参数包括占位符(逗号)以使用默认值。...Sheets集合为工作簿每个工作包含一个Sheet对象。 说明:为什么包含工作集合称为Sheets而不是Worksheets?...这是因为Excel具有两类工作,其中包含数据行和列以及嵌入式图表工作和图表工作包含一个图表)。因此,Sheets集合包含Sheet对象,有两种类型:工作和图表工作。...在以后课程中将介绍此处显示许多其他对象和集合。...当代码尝试删除工作时,Excel通常会向用户显示提示,要求他或她确认删除操作。

    5.1K30

    探索VBA代码编辑器——《Excel VBA宏编程》系列讲座2

    其中VBAProject是根节点,默认带有一个Excel对象,其中包含代表当前工作簿ThisWorkbook对象模块和工作Sheet1对象模块。...当你添加或删除工作簿或工作时,这个树状结构会相应地变化。你也可以添加标准模块、类模块和用户窗体,此时该树状结构会相应更新。...事实上,在工程资源管理器,你可以看到当前Excel已经打开所有工作簿及其对应工作。如下图5所示。...图5 从中我们对Excel VBA中非常重要概念进行初步理解:工作簿是一个可以引用对象,每个工作也是一个可以引用对象。...图12 保存包含VBA代码工作簿 在保存含有VBA代码工作簿时,我们需要使用xlsm扩展名,如下图13所示,否则Excel会自动删除代码。

    3.5K20

    使用VBA将图片从一个工作移动到另一个工作

    下面的Excel VBA示例将使用少量Excel VBA代码将图片从一个工作移动到另一个工作。为了实现这个目的,要考虑以下事情: 1.要移动图片名称。...3.如何处理所选内容要替换图片? 这里,使用数据验证列表来选择一个国家(国旗),而Excel VBA将完成其余工作。以下是示例文件图片,以方便讲解。...图1 所有图片(旗帜)都有一个名称(如中国、加拿大、巴哈马等),并将其添加到验证列表。只需从蓝色下拉列表中选择要移动图片名称,然后单击移动按钮,就可将相应图片(旗帜)移动到另一个工作。...= False '先删除目标工作所有图片 For Each Pic In Sheet1.Pictures Pic.Delete Next Pic '复制下拉列表中选择名称对应图片 sh.Shapes...[d8].PasteSpecial Application.ScreenUpdating = True End Sub 上面简单程序分为两个部分,首先从目标工作删除所有图片(Sheet1是目标工作

    3.9K20

    VBA还能活多久?——完美Excel第169周小结

    从在Excel 5推出第一个版本起,VBA存在将近30年。无论你是否学习过编程,这都是一种非常容易学习编程语言,并且能够快速应用到具体工作场景。 为什么学VBA?...4.VBA简单易学,不仅有助于提高工作效率,也可以快速地为我们进一步学习其他编程语言打下基础。 Microsoft会从Office删除VBA吗? 不会。...虽然最新版本VBA显示是2012年,但Microsoft仍然在后续版本包含VBA,只是没有更新而已,但仍在加入了新对象时会更新VBA对象模型。...(续) Excel小技巧45:2个工作操作习惯,利已也利他 Excel公式技巧45:按出现频率依次提取列表数据 Excel小技巧46:在单元格输入连续数字6种方法 资源分享:电子地图下载与拼接器...技术 连接满足条件多个值并显示在一个单元格 #VBA 复制文件到指定文件夹并重命名 显示组成SUMIFS函数结果数据 同步多工作指定区域数据 快速给所选单元格添加前缀

    4.6K40

    数据分析必备技能:数据透视使用教程

    ---- 处理数量较大数据时,一般分为数据获取、数据筛选,以及结果展示几个步骤。在 Excel ,我们可以利用数据透视(Pivot Table)方便快捷实现这些工作。...本文首先手把手教你如何在 Excel 手动构建一个基本数据透视,最后用 VBA 展示如何自动化这一过程。...以上就是创建数据透视基本过程。 7 自动化创建 基本数据透视创建和调整并不复杂,但如果有很多类似的重复性工作的话,使用一些简单 VBA 来自动化这一过程,将极大提升工作效率。...本例中使用 VBA 脚本完成与上述例子一样任务,对于 VBA 语言做简单注释,想更多了解可以自行查阅官方文档等 1.一键生成 此处我们放置一个按钮在源数据所在数据,用于每次点击自动生成一个数据透视...8 总结 本文简单展示了在 Excel 创建透视过程,以及其筛选、展示数据方式 通过 VBA 可以完成和手动创建一样甚至更多功能,并大大提高工作效率

    4.7K20

    【愚公系列】《AI智能化办公:ChatGPT使用方法与技巧从入门到精通》 024-ChatGPT办公应用(ChatGPT在Excel应用

    启动Excel并打开工作: 启动Microsoft Excel应用程序,并打开您工作,您可以在这里开始处理数据和完成相应任务。...一、ChatGPT在Excel应用 1.快速创建Excel 当我们需要一份具有样表格式和数据文档时,可以通过一句话让ChatGPT生成一份完整。...以下是相应Excel公式: =SUMIF(D2:D100, "手机", H2:H100) 这个公式表示:在D2到D100范围内查找所有“手机”条目,并将对应H列(即销售金额)数值加总。...答: 要在Excel中使用VBA代码来为A1:A6区域每一个单元格增加复选框,并且将这些复选框与对应单元格链接,你可以按照以下步骤进行: 打开Excel,然后打开你需要操作工作。...复选框选中状态将反映在对应单元格(选中时为TRUE,选中时为FALSE)。 请注意,运行VBA脚本和使用宏可能会受到Excel安全设置限制。

    11520

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

    excelperfect 引言:这是在知识星球App完美Excel社群中发表Excel VBA编程系列文章一篇,使用一个示例来讲解用户窗体基础应用。...用户窗体代码可以验证输入数据并执行检查,例如,验证邮政编码是否包含包含五位数字(对于较新代码,则为九位数字加破折号)。与在后面进行处理相比,在输入之前捕获错误数据要容易得多。...这里是该工程方案。工作簿用于维护一组人姓名和地址数据,该工作簿名为Addresses.xlsm,数据所在工作也称为Addresses,该工作包含各种数据项列标题,如图21-1所示。...提供一个用于选择state列表框控件。 显示一个“下一步”命令按钮,该按钮将当前数据保存在工作,并再次显示该窗体以输入更多数据。...VBA学习信息 本文为知识星球:完美Excel社群正在陆续推出Excel编程周末速成班》系列一篇,到2020年12月27日,此系列已更新至第21课。

    6.1K10

    VBA实战技巧32:安装Excel加载宏

    Excel是如何管理加载宏列表 在后台,Excel使用注册和一个特殊文件夹来管理存在哪些加载项以及已安装了哪些加载项。...2.注册 对于与上述位置不同加载项,Excel将在注册查找。当单击“浏览”按钮以查找加载项时,会在此处添加键。...图4 每个键都包含要打开加载项名称(有时还包含一些命令行参数)。如果加载项不在加载项文件夹,则包含完整路径。 注意,这些注册表项在关闭Excel后更新。...Excel可以打开此类文件,但无法安装zip文件夹加载项。并且压缩软件会在关闭后立即删除Temp该文件夹。然后,会在Excel得到一个指向已安装加载项指针,该加载项没有随附xlam文件。...最后一行关闭加载项打开所有工作簿。为什么?因为当没有活动工作簿时你无法打开加载项对话框,显然这也会阻止Excel通过VBA将新加载项添加到列表

    4.9K20

    Excel基础:一文带你了解VBA编辑器

    项目资源管理器:项目资源管理器显示了VBA项目中所有模块、表单、工作等组件。您可以在项目资源管理器管理和组织您VBA项目结构。属性窗口:属性窗口显示当前选定对象属性和属性值。...具体看动画效果:开发者工具VBA相关组成按钮Visual Basic:点击可以直接打开 VBA 编辑器,作用等同于快捷键 Alt + F11。...宏:打开宏列表,支持对列表宏进行编辑,例如运行、修改、删除等操作。录制宏:点击录制宏可以将键盘和鼠标操作,自动转换成 VBA 代码。这个功能在实际VBA开发过程中使用非常频繁。...使用相对引用:用来配置录制宏时选定单元格。宏安全性:设置 Excel 如何对待包含 VBA 代码工作簿。...因为存在一些恶意代码,所以一般将宏安全性设置为禁用3.4 Excel文档内部打开VBA编辑器方式Excel2013 可以点击最底部sheet标签页右键查看代码可以打开。

    2.4K31

    使用VBA自动化处理代码大全1

    标签:VBA Excel最强大功能之一。使用VBA控制表提供了一种强大自动化方法。 在Excel,将数据存储在为数据处理提供了极大方便。...然而,对日常Excel用户来说,最大好处是更简单。如果我们将新数据添加到底部,则引用该任何公式都将自动展开以包含新数据。...最早是在Excel2007引入,是对Excel 2003列表功能替换。但在VBA,文档对象模型(DOM)没有随着升级后功能而更改。...因此,尽管在Excel中使用术语“”,但在VBA仍被称为ListObjects。 结构 在讲解处理VBA代码之前,理解表结构是非常有用。...区域&数据体区域 区域是整个区域,如下图1所示。 图1 数据体区域包括数据行,不包括标题和汇总行,如下图2所示。

    31020

    Excel编程周末速成班第24课:调试和发布应用程序

    同样,如果用于某些数值计算代码产生不正确结果,则也将其视为bug。由于实际上存在无限数量潜在bug,因此无法列出或描述Excel程序可能出现错误。...你也可以使用相同技术来删除断点。带有断点行在深色背景上显示为浅色文本,在相邻页边空白处显示一个圆圈图标,如图24-1所示。你可以根据需要在程序设置任意多个断点。 ?...如果你应用程序是在小型办公室内部使用,则分发可能包括使工作簿文件在服务器上可用以及向同事发送电子邮件。...至少,发布工程需要使包含该工程Excel工作簿文件可供最终用户使用。一些工程包含多个工作簿,而其他则包含相关文件,例如联机帮助。因为创建了该工程,所以你要注意该文件及其需要文件。...注:本文是在知识星球App完美Excel社群中发表Excel VBA编程系列文章一篇,这些文章正陆续更新,近期会全部更新完成。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    5.8K10

    VBA代码库09:增强CELL函数和INFO函数

    excelperfect 本文介绍自定义函数来源于wellsr.com,以ExcelCELL函数和INFO函数为样板,可直接返回工作工作簿名称或工作簿路径,以及与Excel及其操作环境有关各种信息...例如,如果指定参数值为directory,即输入公式: =INFO("DIRECTORY") 则返回当前目录或文件夹路径,对于我示例工作簿来说将返回: D:\01....Excel研究\06.2 VBA代码库\09\[VBACodeLibrary09.xlsm]Sheet1 下面的公式来拆分出工作簿路径、工作簿名称和工作名称。...或 "help" 返回This文本列表 ' This = 上面没有列出任意字符串返回Environ(This) ' 如果Target为空(默认), 则Target被设置为引用此函数单元格(如果在VBA...如果参数Target引用了打开工作簿,则Target可能会被视为NameOf函数引用(其默认值)单元格或无效Range。

    4.6K10

    一起学Excel专业开发02:专家眼中Excel及其用户

    工作:用于程序数据存储 在程序代码,在程序代码处理,经常要用到一些数据,而工作就是一个天然数据存放地,我们可以在工作表单元格存放数字、文本、表格或图片,供程序使用,而VBA程序代码可以方便地访问这些数据...图2 这里向导2列表框项目数据读取工作列A数据,在向导2选取“Client Detail”后,向导3会出现该指定项报表选项,并读取工作相应单元格数据作为其复选框选项。...(Worksheets集合对象),包含工作簿里所有的工作对象(Worksheet对象),而每个Worksheet对象又包含单元格区域对象(Range对象)。...1.Excel初级用户:将Excel工作当做存放数据、报表或进行简单计算工具,并且随着Excel使用经验增加,其工作簿也会变复杂,会包含大量工作公式与函数、图表和数据透视等。...2.Excel高级用户:熟悉Excel各种功能,知道在何种情况下使用何种功能,能够根据需要创建复杂工作,能够解决工作使用过程遇到问题,会使用VBA但并不专业。

    4.3K20
    领券