当前位置: 首页 > article >正文

VBA高级应用30例应用4:利用屏蔽事件来阻止自动运行事件

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三十个专题,本讲的内容是:VBA高级应用30例应用4:利用屏蔽事件来阻止自动运行事件

分享成果,随喜正能量】138 聪明人,抬人不抬杠;傻子,抬杠不抬人。聪明人,把别人抬得很高,别人高兴、舒服了,看你顺眼了,自然就愿意帮你!而傻人呢?不分青红皂白,和人家抬杠,别人不高兴、不舒服,怎么会愿意帮你呢?。

应用4 工作簿打开时阻止事件的自动运行

作为开发人员,需要经常打开包含VBA的文件,并运行代码。但并不总是这样,有时我们还想阻止某些代码的运行,最为典型的是工作簿打开事件中的某些特殊命令,如身份验证部分,我们在某些时候是希望阻止工作簿打开时自动运行的。这篇应用就是向大家展示如何实现这一点。为什么要这么做呢?通常,如果在自己的文件中使用了工作簿自动打开事件,而文件仍在开发中,自动运行Open事件可能需要一段时间才能运行代码,或者在开发文件的程序书写过程中,我们不希望在此时配置项目。

在实际应用中,我们要求用户在打开文件事件中处理某些任务时,一定要启动宏。如果没有设置启用宏,这些事件处理程序会保持禁用状态,这是我们不希望看到的。在这篇应用中,我会同时给大家展示如果用户禁用宏,将不能顺利处理工作簿的方法。但要注意,不信任的宏文件要小心处理。

2 利用屏蔽事件来阻止自动运行事件

现在我们来研究一下如何能绕过身份验证。这个应用中我提供了三种方法,这部分的方案是屏蔽事件。思路是屏蔽工作簿打开时的Workbook_Open事件。因为身份验证是写在了Workbook_Open事件中,所以如果能屏蔽这个事件,就成功地绕过了身份验证过程。这个思路是非常值得实践的。

为了实现上述思路,我们想到了工作簿的父级对象Application对象,这个对象代表整个 Microsoft Excel 应用程序。所以我们可以利用这个对象的某些属性设置来屏蔽某些对象的设置。这里需要利用的是EnableEvents 属性。

  • Application.EnableEvents 属性,如果指定对象已启用事件,此属性的值为 True。 读/写 Boolean。

语法:expression.EnableEvents

expression:表示 Application 对象的变量。

下面我们讲解屏蔽Workbook_Open事件,我们新建一个Excel工作簿,在通用模块中录入下面的代码:

Sub mynzEnableEvent()

Application.EnableEvents = False

End Sub

代码截图:

然后我们将光标放在代码中,点击运行按钮:

这时,我们点击有身份验证的工作簿:

这时我们发现,工作簿已经顺利地打开了:

这里我们再补充一点:

上面屏蔽事件的代码是写在了通用模块中,还可以写在即时窗口中,我们打开VBE窗口,按下CTRL+G组合键调出即时窗口,录入下面的代码:

Application.EnableEvents = False

截图如下:

同样需要把鼠标放在代码中,然后按下回车键,取得的效果是一样的。这里不再做截图演示。

  • 以上部分用到的程序文件:高级应用04_1.XLSM

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:



相关文章:

VBA高级应用30例应用4:利用屏蔽事件来阻止自动运行事件

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…...

Centos 7.6 安装 Node.js 20 的环境配置记录

Centos 7.6 安装 Node.js 20 的环境配置记录 Centos 7在 2024 年的 6 月 30 号已经停止维护了,但是由于时代原因,很多服务还是跑在这个系统上。本篇博文记录如何在 Centos 7.6 上安装 Node20。 初步安装 node 下载 node.js 的 Linux 版本 cd ~ curl -O h…...

springboot3 + mybatis-plus3 创建web项目实现表增删改查

Idea创建项目 环境配置说明 在现代化的企业级应用开发中,合适的开发环境配置能够极大提升开发效率和应用性能。本文介绍的环境配置为: 操作系统:Windows 11JDK:JDK 21Maven:Maven 3.9.xIDE:IntelliJ IDEA…...

每天批次导入 100 万对账数据到 MySQL 时出现死锁

一、死锁原因及优化策略 1.1 死锁原因分析 批量插入事务过大: Spring Batch 默认将整个 chunk(批量数据块)作为一个事务提交,100 万数据可能导致事务过长,增加锁竞争。 并发写入冲突: 多个线程或批处理作…...

【人工智能学习之动作识别TSM训练与部署】

【人工智能学习之动作识别TSM训练与部署】 基于MMAction2动作识别项目的开发一、MMAction2的安装二、数据集制作三、模型训练1. 配置文件准备2. 关键参数修改3. 启动训练4. 启动成功 ONNX模型部署方案一、环境准备二、执行转换命令 基于MMAction2动作识别项目的开发 一、MMAct…...

ES6/ES11知识点 续五

迭代器【Iterator】 ES6 中的**迭代器(Iterator)**是 JavaScript 的一种协议,它定义了对象如何被逐个访问。迭代器与 for…of、扩展运算符、解构赋值等语法密切相关。 📘 迭代器工作原理 ES6 迭代器的工作原理基于两个核心机制…...

sqli-labs靶场18-22关(http头)

目录 less18(user-agent) less19(referer) less20(cookie) less21(cookie) less22(cookie) less18(user-agent) 这里尝试了多次…...

redhat9 安装pywinrm

看了很多文档,都是有很多限制,还是老老实实用pip 安装: Step1: 安装pip: [rootip-abc ~]# python get-pip.py Collecting pip Downloading pip-25.1.1-py3-none-any.whl.metadata (3.6 kB) Collecting wheel Downloading wheel-0.45.1-py…...

Android系统架构模式分析

本文系统梳理Android系统架构模式的演进路径与设计哲学,希望能够借此探索未来系统的发展方向。有想法的同学可以留言讨论。 1 Android层次化架构体系 1.1 整体分层架构 Android系统采用五层垂直架构,各层之间通过严格接口定义实现解耦: 应用…...

Web前端VSCode如何解决打开html页面中文乱码的问题(方法2)

Web前端—VSCode如何解决打开html页面中文乱码的问题(方法2) 1.打开VScode后,依次点击 文件 >> 首选项 >> 设置 2.打开设置后,依次点击 文本编辑器 >> 文件(或在搜索框直接搜索“files.autoGuessEnc…...

【NextPilot日志移植】logged_topics.cpp解析

📘 PX4 Logger 模块注册 uORB 主题、实际订阅与数据采集流程 🧭 目的与背景 在 PX4 飞控中,日志记录模块 logger 需要记录多个 uORB 主题的数据(如 IMU、GPS、姿态等)。为了系统统一管理这些记录需求,log…...

单调栈模版型题目(3)

单调栈型题目贡献法 基本模版 这是数组a中的 首先我们要明白什么叫做贡献,在一个数组b{1,3,5}中,连续包含1的连续子数组为{1},{1,3},{1,3,5},一共有三个,这三个数一共能组成6个连续子数组,而其…...

ts axios中报 Property ‘code‘ does not exist on type ‘AxiosResponse<any, any>‘

ts语法有严格的格式,如果我们在处理响应数据时,出现了axios响应中非默认字段,就会出现标题那样的警告,我们可以通过创建axios.dt.ts解决这个问题 下面是我在开发中遇到的警告,code并不是axios默认返回的字段&#xff0…...

[AI Tools] Dify 工具插件上传指南:如何将插件发布到官方市场

Dify 作为开源的 LLM 应用开发平台,不仅支持本地化插件开发,也提供了插件市场机制,让开发者能够将自己构建的插件发布并供他人使用。本文将详细介绍如何将你开发的 Dify Tools 插件上传至官方插件市场,包括 README 编写、插件打包、仓库 PR 等核心步骤。 一、准备 README 文…...

用react实现一个简单的三页应用

下面是一个使用 React Router 的简单示例,演示了如何在 React 应用中实现页面之间的导航。 🛠️ 第一步:使用 Vite 创建项目 npm create vitelatest my-router-app -- --template react cd my-router-app npm install🚀 第二步&a…...

Java Spring Boot 全面学习指南

一、基础知识 Spring Boot 简介 核心优势:简化 Spring 应用初始搭建和开发(约定大于配置)。核心功能:自动配置(Auto-Configuration)、起步依赖(Starter Dependencies)、嵌入式服务器(Tomcat/Jetty)。对比 Spring MVC:无需繁琐的 XML 配置,内置健康检查、指标监控等…...

Redhat 系统详解

Red Hat 系统深度解析:从企业级架构到核心组件 一、Red Hat 概述:企业级 Linux 的标杆 Red Hat 是全球领先的开源解决方案供应商,其核心产品 Red Hat Enterprise Linux(RHEL) 是企业级 Linux 的黄金标准。RHEL 以 稳…...

Missashe高数强化学习笔记(随时更新)

Missashe高数强化学习笔记 说明:这篇笔记用于博主对高数强化课所学进行记录和总结。由于部分内容写在博主的日记博客里,所以博主会不定期将其重新copy到本篇笔记里。 第一章 函数极限连续 第二章 一元函数微分学 第三章 一元函数积分学 第一节 不定…...

【笔记】当个自由的书籍收集者从canvas得到png转pdf

最近有点迷各种古书,然后从 www.shuge.org 下载了各种高清的印本,快成db狂魔了…上面也有人在各种平台上分享,不胜感激…只是有些平台可以免费看但是没法下载… 反正你都canvas了,撸下来自己珍藏… 于是让qwen写了一段代码&#…...

Go使用Gin写一个对MySQL的增删改查服务

首先用SQL创建一个包含id、name属性的users表 create table users (id int auto_incrementprimary key,name varchar(255) null );查询所有用户信息: func queryData(db *sql.DB, w http.ResponseWriter) {rows, err : db.Query("SELECT * FROM users"…...

k8s之statefulset

什么是statefulset(sts) statefulset是用来管理有状态应用的工作负载API对象,也是一种工作负载资源 有状态和无状态 无状态应用:当前应用不会记录状态(网络可能会变、挂载的东西可能会变、顺序可能会变) 有状态应用:需要记录当前状态(网络不变、存储不变、顺序不变) 使…...

2025最新:3分钟使用Docker快速部署Redis集群

📋 完整步骤:部署 Redis 集群 ✅ 步骤 1:安装 Docker 和 Docker Compose 首先,确保你的 Ubuntu 系统已经安装了 Docker 和 Docker Compose。如果没有安装,执行以下命令: # 更新系统 sudo apt update# 安…...

Xcode16.3配置越狱开发环境

首先先在https://developer.apple.com/xcode/resources/ 这里面登陆Apple账号,然后访问url下载 https://download.developer.apple.com/Developer_Tools/Xcode_16.3/Xcode_16.3.xip 1、安装theos https://theos.dev/docs/installation-macos 会安装到默认位置~/th…...

SCADA|KIO程序导出变量错误处理办法

哈喽,你好啊,我是雷工! 最近在用KingSCADA3.52版本的软件做程序时,在导出变量进行批量操作时遇到问题,现将解决办法记录如下。 以下为解决过程。 01 问题描述 在导出KIO变量时,选择*.xls格式和*.xlsx时均会报错: 报如下错误: Unknown error 0x800A0E7A ADODB Connectio…...

【漫话机器学习系列】249.Word2Vec自然语言训练模型

【自然语言处理】用 Word2Vec 将词语映射到向量空间详解 一、背景介绍 在自然语言处理(NLP)领域,我们常常需要将文本信息转化为机器能够理解和处理的形式。传统的方法,如 one-hot编码,虽然简单,但存在严重…...

云轴科技ZStack入选赛迪顾问2025AI Infra平台市场发展报告代表厂商

DeepSeek凭借低成本、高性能、开源优势带来的蝴蝶效应依然在持续影响企业AI应用部署。尤其在数据安全备受关注的背景下,私有化部署已经成为企业应用AI大模型的优选方案。赛迪顾问在近期发布的《2025中国AI Infra平台市场发展研究报告》中认为,在推理算力…...

安达发|人力、机器、物料——APS排程软件如何实现资源最优配置?

引言:制造业资源优化的核心挑战 在现代制造业中,人力、机器、物料是生产运营的三大核心资源。如何让这些资源高效协同,避免浪费,是企业降本增效的关键。然而,许多制造企业仍面临以下问题: 人力安排不合理…...

【软件测试】软件缺陷(Bug)的详细描述

目录 一、软件缺陷(Bug) 1.1 缺陷的判定标准 1.2 缺陷的生命周期 1.3 软件缺陷的描述 1.3.1 提交缺陷的要素 1.3.2 Bug 的级别 1.4 如何发现更多的 Bug? 1.5 缺陷的有效管理 1.5.1 缺陷的编写 1.5.2 缺陷管理工具 1.5.2.1 缺陷管理 1.5.2.2 用例管理 一、软件缺陷…...

HTTP传输大文件的方法、连接管理以及重定向

目录 1. HTTP传输大文件的方法 1.1. 数据压缩 1.2. 分块传输 1.3. 范围请求 1.4. 多段数据 2. HTTP的连接管理 2.1. 短连接 2.2. 长连接 2.3. 队头阻塞 3. HTTP的重定向和跳转 3.1. 重定向的过程 3.2. 重定向状态码 3.3. 重定向的应用场景 3.4. 重定向的相关问题…...

图像来源:基于协同推理的双视角超声造影分类隐式数据增强方法|文献速递-深度学习医疗AI最新文献

Title 题目 Image by co-reasoning: A collaborative reasoning-based implicit data augmentation method for dual-view CEUS classification 图像来源:基于协同推理的双视角超声造影分类隐式数据增强方法 01 文献速递介绍 结合了B型超声(BUS&…...