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

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

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

2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    解决在SecurecCRT登录后,发现方向键、backspace(退格键)、delete(删除键)为乱码的问题

    问题:使用securecrt ssh到linux之后,backspace(退格键),delete(删除键),以及4个方向键都为乱码,不能正常使用。按tab键也没有自动补全文件名。...即: 按Backspace(退格键)和delete(删除键)屏幕显示的是:^H 按方向键则屏幕显示的是:^[[A^[[B^[[C^[[D 环境: SecureCRT8.1.4 (build 1443)、...解决backspace(退格键)和delete(删除键)的乱码问题:  在SecureCRT的 工具栏–>选项(options)–>会话选项(CRTsession)–>终端(terminal)–>仿真(...解决方向键乱码和tab键不能自动补全的问题: 输入 echo $0  查看linux当前的shell环境,如果显示如下: -sh 则说明我们当前用的是sh环境,这是因为在创建用户时没有指定环境,默认为sh...所以我们以后在创建用户的时候应该用这个命令:   useradd -d /home/abc abc -m -s /bin/bash    -s代表指定一个shell(这个bash shell更舒服更漂亮些

    5.4K20

    JAVA设计模式21:访问者模式,在不修改对象结构的情况下,定义新的对象

    一、什么是访问者模式 访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不修改对象结构的情况下,定义对象的新操作。...访问者模式将对象的操作从对象的类中分离出来,并放置在独立的访问者类中,使得可以在不修改被访问的类的前提下,通过访问者来定义新的操作。 在访问者模式中,有以下 5 个关键角色,请同学们认真学习。...三、访问者模式的应用场景 访问者模式可以在以下 4 种情况下使用,请同学们认真学习。...文件系统的遍历:在文件系统的遍历中,我们需要对不同类型的文件进行不同的操作,比如查找、复制、删除等。访问者模式可以将对文件的操作和文件系统的结构进行解耦,通过访问者来处理不同类型的文件。...访问者模式适用于对象结构相对稳定,但需要频繁添加新的操作或对对象结构中的元素进行多种不同的操作的情况下,它能够提供一种灵活的扩展方式,同时也能够使得代码结构更加清晰、可维护性更高。

    59860

    【靠谱】在不删除和重建 GitHub 仓库的情况下与父(Fork)仓库分离(Unfork)

    背景 有开发者、甚至公司可能会遇到过以下几个问题: 最开始 Fork 了一个仓库,之后做了大量的修改,从功能到开发语言,已经与父仓库各自发展了 由于是 Fork 的仓库,在每次提 Pull Request...的默认目标分支是父仓库,一不注意就会提 PR 到父仓库里去了 Fork 的仓库有人贡献并使用了,但不能显示贡献者,以及该项目被哪些其他的项目所使用,这不利于项目的发展 基于这些问题,开发者会考虑与父仓库进行分离...如果直接删除项目并重建可以达到分离的目的,但这样会丢失一些重要的信息,比如项目中的 Issues,Wikis 以及 Pull Requests 等。...解决办法 在经过一番调查和测试,目前最可行的办法就是通过 GitHub Support 来处理,具体操作如下: 打开这个链接:https://support.github.com/contact?...tags=rr-forks 选择你的账户或是组织,然后在 Subject 中输入 "unfork" 会自动弹出虚拟助手,选择虚拟机助手 然后根据虚拟助手的问题然后选择答案(如下是部分截图) 最后这些对话会自动转换成文字脚本

    77610

    MongoDB 介绍和操作

    早些年我们是先有了 Relation Database (关系型数据库),然后出现了很多很复杂的query ,里面用到了很多嵌套,很多 join 操作。...支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。...MySQL MongoDB表集合行文档列字段joins嵌入文档或者链接 MongoDB应用范围和限制 MongoDB 的主要目标是在 key-value (键/值)存储方式(提供了高性能和高度伸缩性)以及传统的...缓存:由于性能很高, Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由 Mongo 搭建的持久化缓存层可以避免下层的数据源过载。...MongoDB使用场景 更高的写入负载: 默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景。

    4.4K20

    Python基础学习_06_数据存储

    【注意】shelve模块中, 通过 s['name'] = 'hust' 这一过程,若已存在"name"键时,则上面的操作是修改原有键对应的值,若没有"name"的键,则会增加新的键值对;但要是shevle...(4)Mongo数据库存储数据 Mongo数据库是NoSQL数据库,Python中提供了pymongo模块来实现与Mongo数据库的交互,首先需要安装pymongo: # 安装最新版本的pymongo模块...安装之后,使用dir(pymongo)来查看pymongo中的方法和属性: ? 在Ubuntu上安装MongoDB: ? 与MongoDB进行链接: ? 打印结果: ?...(4-3)更新数据 Python可以调用数据集合的update()函数进行数据的更新。 ? 打印结果: ? (4-4)删除数据 Python中调用数据集合的remove()函数删除数据: ?...(6-6)删除数据 ? 打印结果: ? 删除成功,需要注意的是,在执行完操作之后,需要尽量关闭游标对象,数据库链接对象: ?

    1.1K30

    左手用R右手Python系列之——noSQL基础与mongodb入门

    写这一篇是因为之前在写web数据抓取的时候,涉及大量的json数据,当然我们可以直接将json转换为R语言(dataframe/list)或者Python(dict/DataFrame)中的内置数据对象...每一个documents作为一条记录,相当于SQL中的一行,而documents内是键值对结构,且允许包含嵌套结构。...一个documents对象内嵌套的同一层级key-value对象,被称为fileds,可以近似理解为SQL中的column。 ?...R语言中的非结构化数据对象是list,因为list结构与json或者bson差别比较大,在插入mongo之前需要使用特定函数进行list/json与bson之间的相互转化。...为了防止数据混乱,现将之前在R语言中添加的表记录删除: collection.remove({}) collection.insert_one(mydata1) results = collection.find_one

    3.6K70

    Python 操作 MongoDB 数据库(下)

    我们建立的 books 引用的是一个 MongoDB 的集合对象,既然是对象,那么就有一些方法供我们使用,今天我们就来学习一下。...编辑 >>> type(books) pymongo.collection.Collection'> >>> dir(books) 还是用我们的老朋友 dir() ,你在自己的交互模式下运行的结果会发现有很多的方法...} }) {'updatedExisting': True, u'nModified': 1, u'ok': 1.0, u'n': 1} 在更新的时候,用了一个 $set 修改器,它可以用来指定键值,如果键不存在则创建...当然了,也可以根据 MongoDB 的语法规则写个条件,按照条件删除。 5.索引 索引的目的是为了让查询的速度更快,但是在实际应用中,是否建立索引要视情况而定,因为建立索引是有代价的。...pymongo 模块做了一个非常简单的介绍,在实际的使用过程中,上面的知识其实是很有限的,所以还是需要大家根据具体应用场景再结合 MongoDB 的相关知识去尝试新的语句。

    51010

    MongoDB使用小结:一些常用操作分享

    count() 两个条件: db.xxx.find({E:{$gte: ISODate("2014-05-29"), $lte: ISODate("2014-06-04")}}).count() json中的嵌套对象查询...之所以出现这个错误是因为MongoDB无法保证集群中除了片键以外其他字段的唯一性,能保证片键的唯一性是因为文档根据片键进行切分,一个特定的文档只属于一个分片,MongoDB只要保证它在那个分片上唯一就在整个集群中唯一...,实现分片集群上的文档唯一性一种方法是在创建片键的时候指定它的唯一性。...在数据同步耗时不严重的情况下,我们不需要对每个副本做repair,而是轮流“卸下副本,删除对应的磁盘文件,重新挂上副本”。每个重新挂上的副本都会自动去重新同步一遍数据,碎片问题就解决了。...步骤:首先,下掉一个副本;然后,把副本的磁盘文件删除掉;接着,在该副本的启动命令中添加--storageEngine wiredTiger后启动。

    2K40

    pyMongo操作指南:增删改查合并统计与数据处理

    3T 3 pymongo增删改查 3.1 数据库连接 3.2 建表collection 3.3 文档插入与删除 关于Unicode编码的字符串注意点 3.4 数据更新update 3.5 数据替换replace...在我们的例子中,Python命令行中的字符串,像u’Mike’替代了’Mike’这样的原因是,PyMongo将每个BSON字符串都解码成了Unicode,而不是常规字符串 3.4 数据更新update...result.modified_count # 修改的对象``` 替换文档: 在更新之后,该文档将只包含替代文档的字段。...在本例中,我们将演示如何在一个键上创建唯一的索引,该索引排除了索引中已存在该键的值的文档。...数据库某个字段被设置成了unique,在插入的时候这个字段出现了重复;   2. insert_many使用时所插入的文档列表中存在指向同一个对象的多个元素,这个本质上跟第一种情况是一样的,因为每个元素被插入之后都会被添加了一个

    11.2K10

    python操作mongodb数据库

    : 0 } 删除 集合的全部索引(不包括 _id 等系统索引) 创建索引 删除指定索引 重建索引,在python里不知道怎么写 显示如: {u'nYields': 0, u'allPlans'...还会删除之前重复的资料 一、MongoDB 数据库操作 连接数据库  import pymongo  conn = pymongo.Connection() # 连接本机数据库 conn...(sort = [(“键1”, pymongo.ASCENDING), (“键2”, pymongo.DESCENDING)]): print u # sort 的另一种写法 for u in db.users.find...)]) 重建索引,在python里不知道怎么写 db.users.reIndex() # 会报错 explain  explain 命令让我们获知系统如何处理查询请求。 ...out: 统计结果存放集合 (不指定则使用临时集合,在客户端断开后自动删除)。 keeptemp: 是否保留临时集合。

    1.7K20

    day120-day121-MongoDB的基础增删改查&pymongo的使用

    Boolean # 布尔值,true 或者 false (这里有坑哦~在我们大Python中 True False 首字母大写) Integer # 整数 (Int32 Int64 你们就知道有个...Int就行了,一般我们用Int32) Double # 浮点数 (没有float类型,所有小数都是Double) Arrays # 数组或者列表,多个值存储到一个键 (list哦,大...# 删除 age=44 的 # db.user_info.deleteOne({age:44}) # deleteMany # 删除多条数据 # 删除名字是 'zhangsan' 或者 'lisi'...name:'lisi'},{age:11}]}) 4.2 in & all # in # field 是 查询条件的子集 # 查询 age 在 11,22,44 里面的 # db.user_info.find...sort 其次优先为 skip 最低优先级 limit 6.pymongo 对 MongoDB 的增删改查 6.1创建连接 import pymongo # 根据 str 类型的 ObjectId

    3.1K20
    领券