精华内容
下载资源
问答
  • 快速批量删除工作表

    千次阅读 2018-04-05 10:58:17
    删除工作表是VBA代码开发过程中经常用到的操作,一行代码就可以完成,这有啥可讲的呢!?代码一执行,是否就看到下面这个令人烦的窗口跳出来了。 此时,你就不得不点击【删除】按钮确认才可以删除工作表,如果要...

    前言

    删除工作表是VBA代码开发过程中经常用到的操作,一行代码就可以完成,这有啥可讲的呢!?代码一执行,是否就看到下面这个令人烦的窗口跳出来了。

    此时,你就不得不点击【删除】按钮确认才可以删除工作表,如果要批量删除多个工作表,那么就需要不停的点击按钮,VBA代码实现自动化操作的目的就无法实现。

    解决方案

    Excel为了避免用户的误操作,每次删除工作表都会给出提示信息,用户确认后才会执行删除操作,这个机制是Excel的安全机制,无法取消。但是可以利用系统设置屏蔽这个提示信息,以实现无人干预的自动化操作。为了方便调用,将代码封装成独立的过程。

    Sub DelSheets(vShtName, Optional sWkName As String)
        Dim sName
        With Application
            .DisplayAlerts = False
            On Error Resume Next
            If Len(sWkName) > 0 Then
                Set objWk = ActiveWorkbook
            Else
                Set objWk = Workbooks(sWkName)
            End If
            If VBA.IsArray(vShtName) Then
                For Each sName In vShtName
                    objWk.Sheets(sName).Delete
                Next
            Else
                objWk.Sheets(sShtName).Delete
            End If
            On Error GoTo 0
            .DisplayAlerts = True
        End With
    End Sub

    DelSheets过程有两个参数:

    • vShtName是必选参数,用于指定需要删除的工作表名称, 可以单个工作表,也可以是多个工作表名称组成的数组。
    • sWkName是可选参数,用于指定工作表所隶属的工作簿。
      调用代码如下:
    '删除单个工作表
    Call DelSheets("Sheet1")
    '删除多个工作表
    Call DelSheets(Array("Sheet1","Sheet3","Sheet3"))

    代码解析

    此过程的核心代码如下:

    Application.DisplayAlerts = False
    On Error Resume Next

    第一行代码禁止显示系统告警信息,删除工作表时就不会出现提示对话框,在过程结束前,需要回复系统设置Application.DisplayAlerts = True
    第二行代码忽略系统错误,也就是忽略删除工作表可能产生的异常错误,在过程结束前,需要回复系统设置On Error GoTo 0

    VBA.IsArray(vShtName)用于判定参数vShtName是否是数组。

    • 如果vShtName是数组,则返回值为True,属于批量删除工作表。For Each sName In vShtName遍历数组中的元素(工作表名称),然后逐个删除。
    • 如果vShtName不是数组,那么就是单个工作表名称,可以直接进行删除操作。
    展开全文
  • 【代码模板004】VBA快速删除工作表

    千次阅读 2018-03-01 02:34:00
    老规则 —— 先删除再创建,删除工作表很简单嘛,Sheets(..).Delete一句代码搞定。怎么又弹出一个消息窗口,Excel的产品经理考虑过宝宝们的用户体验吗!?删除工作表也搞得这么复杂,又不是从银行账户里转...

    在博文 VBA添加工作表详解 中为大家讲了如何使用一句代码在指定位置插快速入指定名称的工作表。但是如果工作簿中已经存在同名工作表,那么运行时错误’1004‘就不期而遇的跳了出来。

    老规则 —— 先删除再创建,删除工作表很简单嘛,Sheets(..).Delete一句代码搞定。怎么又弹出一个消息窗口,Excel的产品经理考虑过宝宝们的用户体验吗!?删除工作表也搞得这么复杂,又不是从银行账户里转走500万。

    每次都这么麻烦,必须拿出VBA来搞定它了。

    Sub DelSheet(vShtName, Optional sWkName As String)
        Dim sName
        With Application
            .DisplayAlerts = False
            On Error Resume Next
            If Len(sWkName) > 0 Then
                Set objWk = ActiveWorkbook
            Else
                Set objWk = Workbooks(sWkName)
            End If
            If VBA.IsArray(vShtName) Then
                For Each sName In vShtName
                    objWk.Sheets(sName).Delete
                Next
            Else
                objWk.Sheets(sShtName).Delete
            End If
            On Error GoTo 0
            .DisplayAlerts = True
        End With
    End Sub

    这个事儿整的似乎有点儿大,一句代码怎么被扩展成了20多行。莫急,俗话说工欲善其事,必先利其器,以后调用起来就so easy。

    Sub Demo()
        '删除单个工作表
        DelSheet Array("sheet1")
        '删除多个工作表,并指定工作簿
        DelSheet Array("sheet3", "sheet4"), "MyData.xlsx"
    End Sub

    无论是当前工作簿还是其他工作簿,即可以删除单个工作表,又可以删除一组工作表,随心所欲一句代码就搞定。

    展开全文
  • 在Excel中禁止删除工作表

    千次阅读 2012-06-21 11:27:46
    为了防止用户误删除工作簿中的工作表,可以通过保护工作簿的方法来禁止删除工作表,方法如下:  1. 在Excel 2003中,单击菜单“工具→保护→保护工作簿”。在Excel 2007中,选择“审阅”选项卡,在“更改”组中...

    为了防止用户误删除工作簿中的工作表,可以通过保护工作簿的方法来禁止删除工作表,方法如下:

        1. 在Excel 2003中,单击菜单“工具→保护→保护工作簿”。在Excel 2007中,选择“审阅”选项卡,在“更改”组中单击“保护工作簿→保护结构和窗口”。在Excel 2010中直接单击“保护工作簿”按钮即可。

        2. 在弹出的窗口中默认已选择了“结构”。在“密码”下方输入密码。

        保护工作簿结构

        单击“确定”,并再次输入密码。

        这样,就对工作簿的结构设置了保护,用户如果不知道密码则无法复制、删除或插入工作表,也不能修改工作表名称。如果在上述对话框中选择了“窗口”,会禁止用户更改工作表窗口大小和位置。

        另外,当设置了工作簿保护后,功能区中或菜单中的相关命令会出现一些变化,如Excel 2010会高亮显示“保护工作簿”按钮,Excel 2007会在“保护结构和窗口”命令前显示一个对勾,而Excel 2003菜单中的“保护工作簿”命令会变成“撤消工作簿保护”,通过这些就可以了解工作簿是否被设置了保护。

    展开全文
  • 需求① 在一个工作簿(workbook)中根据已知的工作表名称创建多个工作表并分别命名,可以创建同时当然需要研究增删改工作表。思路:研究vba的基础语法,知道了workbooks(工作簿集)、workbook(工作簿)、worksheet...

    近期因工作之需需对Excel数据进行录入处理加工遂开始研究Excel的VBA编程以提高工作效率,将重复性的工作程序化。

    需求① 在一个工作簿(workbook)中根据已知的工作表名称创建多个工作表并分别命名,可以创建同时当然需要研究增删改工作表。

    思路:研究vba的基础语法,知道了workbooks(工作簿集)、workbook(工作簿)、worksheet(工作表)两个对象包含多种方法可分别对工作簿和工作表进行操作

    主要代码如下:

    '批量创建工作表
    Sub CreateSheet_Click()
        Dim int_rows As Integer, rng As Range, rng1 As Range, int_rows1 As Integer
        int_rows = 0
        For Each rng In ThisWorkbook.Worksheets(1).UsedRange.Columns(1).Rows
            If rng.row > 1 Then
                int_rows1 = 0
                int_rows = int_rows + 1
                ThisWorkbook.Worksheets.Add Count:=1, after:=Sheets(int_rows)
                ThisWorkbook.Worksheets(int_rows + 1).Name = rng.Value
                For Each rng1 In ThisWorkbook.Worksheets(1).UsedRange.Columns(2).Rows
                    If rng1.row > 1 Then
                        int_rows1 = int_rows1 + 1
                        ThisWorkbook.Worksheets(rng.Value).Cells(1, int_rows1).Value = rng1.Value
                    End If
                Next
            End If
        Next
        MsgBox int_rows & "个工作表已创建完成"
    End Sub
    '批量删除工作表并不弹出警告框
    Sub deleteSheet_Click()
        Dim int_rows As Integer, rng As Range
        int_rows = 0
        Application.DisplayAlerts = False
        For Each rng In ThisWorkbook.Worksheets(1).UsedRange.Columns(1).Rows
            'int_rows = int_rows + 1
            If WorksheetExists(ThisWorkbook, rng.Value) Then
            ThisWorkbook.Worksheets(rng.Value).Delete
            int_rows = int_rows + 1
            End If
        Next
        Application.DisplayAlerts = True
        MsgBox "共删除" & int_rows & "个工作表"
    End Sub
    展开全文
  • Oracle恢复删除表&彻底删除表方式

    千次阅读 2018-08-02 16:53:00
    工作过程中,会出现误删的情况,这时,可以通过flashback的方式恢复删除。 通过 flashback table table_name to before drop; 语句可以实现恢复表的功能。 如果想要完全删除,在最后增加purge即可。 ...
  • oracle不小心删除表恢复方法

    千次阅读 2013-07-15 10:31:12
    使用 Oracle Database 10g中的闪回特性,可以毫不费力地恢复被意外删除 以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的—当然是意外地删除—并需要尽快地恢复。(在某些时候,这个不幸的...
  • VBA 工作表的添加与删除

    千次阅读 2012-05-22 14:39:50
    工作表的添加与删除 在工作簿中添加工作表使用Add方法,如下面的代码所示。 #001 Sub Addsh() #002 Dim Sh As Worksheet #003 With Worksheets #004 Set Sh = .Add(after:=Worksheets(.Count)) #...
  • 在实际的工作中我们可能会因为一些误操作删除一些。这个时候可以通过Oracle的回收站来恢复删除、 一、创建测试A: create table A ( id VARCHAR2(20), name VARCHAR2(20), address VARCHAR2(20) ) ...
  • 那其实也可以把多个工作表合并为一个。 继续之前的例子,我们把汇总表删除 如下 把表 1,2,3 合并到sheet5中 合并代码如下: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = Fals...
  • 会创建当然少不了删除了,接下来我们接着删除指定的工作表吧。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Office....
  • 7, 9, 10, 12, 13, 15, 16行的代码,使用这个批量删除行的代码要注意以下几点:1)该代码只用于批量删除代码所在文件目录下(不含子目录)与 “*.xls*”后缀匹配的所有工作薄l所有工作表第6, 7, 9, 10, 12, 13, 15,...
  • 最近做的一个物流项目,其主要操作是处理上传和下载Excel文件的,主要用的...不能做修改、插入及删除行列的操作,另一部分是动态部分,只允许删除列。本来以为不难实现,然而在做到动态部分允许删除列时,一直存在问题
  • PHPExcel读取多工作表

    万次阅读 2018-08-24 09:21:40
    最近我们公司crm模块需要优化一下客户导入功能,之前的要求是:只需要从单个工作表中获取数据;现在的要求是:需要在多个工作表中获取对应数据,并导入数据库; 幸亏PHPExcel已经给我们提供了获取多个sheet工作表...
  • 工作中使用了 sql server 2008,操作一台远程服务器。 再断开与对象资源管理器的连接后,以为已经关闭了与远程服务器的连接。 这时再连接到本地数据库,在代码窗口中执行删除数据的语句。不幸的事情发生了,远程...
  • 【VBA】工作表删除所有图片、形状

    千次阅读 2018-11-07 11:13:13
    Dim shp As Object  For Each shp In ActiveSheet.Shapes  shp.Delete  Next shp  
  • 自己在工作中使用到了activiti工作流,由于手动删除工作流自动创建的,再次启动醒目时,创建报错,出现这样的原因是没有删除工作流创建的序列,在数据*库中执行以sql即可: drop sequence act_evt_log_seq...
  • 经常和excel接触的我之前都是直接把复制到新去,前天突然狠下心来想找到一个方法解决这个问题。综合参考了度娘、知乎,自己摸索出如下靠谱方法,屡试不爽! 首先,选中你想开始删除的那堆空白行的首行,同时点...
  • 磁盘的删除恢复工作原理

    千次阅读 2019-02-16 15:08:03
    不小心将拍的比较好的照片给误删了,但是sd卡被删除后是没有办法在回收站中找回的,就在网上找了好多办法,最后还是话了钱买了一个恢复磁盘数据的vip才将被删除的照片找回来,但是在找回的时候也对其工作原理非常感...
  • Tableau如何隐藏工作表

    千次阅读 2018-07-16 11:53:40
    初学Tableau时,难免会遇到一些坑,比如右击工作表时,隐藏工作表的选项为灰色,不可用,如下图: 原来是Tableau要求只有添加到仪表板中的工作表才可以隐藏,解决方案如下: 1、新建仪表板,将需要隐藏的工作表...
  • 前言step 1 进入excel vba编程界面step 2 粘贴代码step 3 运行代码step 4 删除宏代码 前言 这两天接触到excel比较多,才发现使用excel不仅仅是简单的复制粘贴。 excel vb代码是非常强大,学会使用一些常用的功能,...
  • 今天下午在工作的时候,一个不小心,把搞了好久的一张的某条记录给误删了,忙了将近一天才弄好的一条记录啊(BLOB字段,不要问我是什么...)。于是网上查吧,还真找到了,嘿嘿。  select * from tablename ...
  • oracle数据库用户删除空间删除

    万次阅读 2017-11-08 09:26:51
    以system用户登录,查找需要删除的用户: --查找用户 select * from dba_users; --查找工作空间的路径 select * from dba_data_files...--删除表空间 drop tablespace 空间名称 including contents and datafil

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 677,597
精华内容 271,038
关键字:

删除工作表怎么恢复