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

如何在VBA中保留两个工作表并删除其他工作表

在VBA中,可以使用以下代码来保留两个工作表并删除其他工作表:

代码语言:txt
复制
Sub KeepTwoWorksheets()
    Dim ws As Worksheet
    Dim keepSheet1 As Worksheet
    Dim keepSheet2 As Worksheet
    
    '设置要保留的两个工作表
    Set keepSheet1 = ThisWorkbook.Worksheets("Sheet1")
    Set keepSheet2 = ThisWorkbook.Worksheets("Sheet2")
    
    '循环遍历所有工作表
    For Each ws In ThisWorkbook.Worksheets
        '检查当前工作表是否为要保留的工作表
        If ws.Name <> keepSheet1.Name And ws.Name <> keepSheet2.Name Then
            '删除非保留工作表
            Application.DisplayAlerts = False '禁用警告提示
            ws.Delete
            Application.DisplayAlerts = True '启用警告提示
        End If
    Next ws
End Sub

这段代码首先使用Set关键字将要保留的两个工作表赋值给变量keepSheet1keepSheet2。然后使用For Each循环遍历所有工作表,通过比较工作表的名称来判断是否为要保留的工作表。如果不是要保留的工作表,则使用Delete方法删除该工作表。

请注意,这段代码是在当前活动的工作簿中执行的。如果要在其他工作簿中使用,请确保将代码适当修改。

此外,这里没有提及任何特定的云计算品牌商和产品,因为这个问题与云计算领域无关。

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

相关·内容

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

标签:VBA 自Excel 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技术:如何在一个工作筛选获取另一工作的数据

    标签:Power Query,Filter函数 问题:需要整理一个有数千条数据的列表,Excel可以很方便地搜索显示需要的条目,然而,想把经过提炼的结果列表移到一个新的电子表格,不知道有什么好方法?...图1 示例数据位于名为“1”的,我们想获取“产地”列为“宜昌”的数据。...方法1:使用Power Query 在新工作簿,单击功能区“数据”选项卡的“获取数据——来自文件——从工作簿”命令,找到“1”所在的工作簿,单击“导入”,在弹出的导航器中选择工作簿文件的“1”...单击功能区新出现的“查询”选项卡的“编辑”命令,打开Power Query编辑器,在“产地”列,选取“宜昌”,如下图2所示。 图2 单击“确定”。...图3 方法2:使用FILTER函数 新建一个工作,在合适的位置输入公式: =FILTER(1,1[产地]="宜昌") 结果如下图4所示。

    15.3K40

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

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

    1.9K30

    VBA技巧:让代码识别工作的形状

    标签:VBA Q:我在工作中放置有一些形状,例如圆形、矩形等,我想当我在工作中使用鼠标单击这些形状时能够根据单击的形状有不同的操作,该如何实现?...我想在一个过程实现,而不是每个形状关联不同的过程。 如下图1所示,当我使用鼠标单击上方的圆形时,会执行一个操作;单击下方的矩形时,会执行另一个操作,但这两个形状都关联相同的过程。...图1 A:在示例工作,将上方的圆形命名为“椭圆示例”,下方的矩形命名为“圆角矩形”。...End If End Sub 然后,返回工作,在形状单击鼠标右键,将其关联到宏过程testShape。当你单击工作的形状时,结果如下图2所示。...图2 你可以代替过程MsgBox行的代码为你想要执行的操作代码。

    13610

    VBA实用小程序64: 标识工作的名称区域

    学习Excel技术,关注微信公众号: excelperfect 在工作定义名称是一项很强大的功能,我们可以将定义名称的单元格区域看作一个整体,从而方便对其进行很多操作。...在进行工作数据处理时,很多人都会定义名称。 有时候,在分析工作数据时,如果能够清楚地看出命名区域,将有助于我们了解工作。...下面的一小段程序可以将工作的命名区域添加红色背景色: Sub SetNameRanges() '声明变量 Dim rngName As Name On Error Resume...Next '遍历当前工作簿的名称 For Each rngName In ActiveWorkbook.Names '将名称区域的单元格背景色设置为红色...rngName.RefersToRange.Interior.ColorIndex = 3 Next rngName End Sub 如下图1所示,在工作定义了两个命名区域。

    1.3K30

    VBA代码:获取并列出工作的所有批注

    标签:VBA 在使用Excel工作时,我们往往会对某些单元格插入批注来解释其中的数据,用户也可能会插入批注来写下他们的建议。...如果你的工作中有很多批注,而你不想逐个点开查看,那么可以将所有批注集中显示在工作。...本文给出的代码将获取工作中所有的批注,并将它们放置在一个单独的工作,清楚地显示批注所在的单元格、批注人和批注内容。...ExComment.Text) - InStr(1, ExComment.Text, ":")) End If Next ExComment End Sub 代码首先检查当前工作是否存在批注...如果有批注,则创建一个用于放置批注的名为“批注列表”的工作,其中,在列A放置批注所在的单元格地址,列B放置写批注的人名,列C是批注的内容。

    2.4K20

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

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

    4K11

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

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

    5.3K22

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

    文章背景: 在工作,有时需要将多个工作簿进行合并,比如将多份原始数据附在报告之后。...一般的操作方法是打开两个工作簿(目标工作簿和待转移的工作簿),然后选中需要移动的工作,右键单击以后选择“移动或复制”。接下来在新的对话框里面进行设置。 这种方法适合在移动少量工作的时候使用。...如果有很多的工作簿,都需要进行移动的话,一个一个打开然后再操作比较费时费力。这时就可以使用VBA来批量进行操作。...在目标工作簿内,插入一个模块,然后导入如下的代码: Option Explicit Sub MergeWorkbook() '将多个工作簿的第一张工作合并到目标工作簿...转移前: 转移后: 参考资料: [1] 如何使用Excel VBA将多个工作簿的全部工作合并到一个工作簿(https://zhuanlan.zhihu.com/p/76786888)

    5.8K11

    VBA编程练习05. 在工作实现七段显示

    学习Excel技术,关注微信公众号: excelperfect 本次练习题 这是一个有趣的VBA编程练习,来自于dailydoseofexcel.com。...使用VBA代码在工作中将数字显示为七段显示,如下图1所示。 ? 图1 在单元格C9输入四位及四位以内的数字,在单元格区域B2:P6会像电子显示屏一样以七段形式显示这个数字。...LBound(aDigits(CLng(Mid$(sValue, i, 1)))) To UBound(aDigits(CLng(Mid$(sValue,i, 1)))) '获取相应单元格设置颜色...Interior.Color = lON End If End If Next j Next i End Sub 在数字所在的工作模块...建议有兴趣的朋友多调试理解这段代码,帮助理解数组的运用、以及单元格的获取、偏移、设置等VBA操控Excel的基础知识。

    1.7K10

    Excel实战技巧98:使用VBA工作添加ActiveX控件

    excelperfect 一些情形下,我们需要在工作中使用ActiveX控件,这通常使用VBA来实现。...要使用VBA从控件工具箱(ActiveX控件)添加控件,可以使用OLEObjects集合的Add方法。...图1 下面的代码用来在工作添加复选框: Sub RefreshList() Dim oCheck As OLEObject Dim rCell As Range, rRange As...,因为本示例已知道工作其他控件,所以直接删除,如果无法判断是否有其他控件而只需删除复选框,可以加上一个条件判断语句: If TypeName(oCheck.Object)=”CheckBox” Then...接下来,在确定数据范围后,在第一列添加复选框设置了一些属性值以方便以后操作。这里,有一些通用的适合于其他控件的属性,也有一些专属于复选框的属性。

    5.5K10

    VBA实战技巧03: 精确追踪工作我们关注的形状

    有些Excel用户喜欢在工作绘制形状,以实现其目的。例如,如下图1所示,绘制一个矩形方框来强调这些单元格的数据。 ?...如果你想移除工作添加的所有红色矩形框,可以使用下面的代码: Sub RemoveAllShapes() Dim shp As Shape '遍历当前工作的所有形状 '如果不是图表... msoComment Then shp.Delete End If Next shp End Sub RemoveAllShapes过程将删除当前工作的所有形状...然而,在有些情形下,工作可能存在除红色矩形框之外的其他形状,而我们并不想删除这些形状。实现这种情形的一个技巧是,在添加这些形状时重命名并在其名字后添加指定的字符作为标记。...End Sub 这样,就可以很方便地使用VBA代码找到所有的红色矩形框并进行相应的操作了。

    94810
    领券