百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

要持续提高自己的VBA实用技能 vba提升代码运行速度

yuyutoo 2024-10-20 13:05 10 浏览 0 评论

分享成果,随喜正能量】做个刚刚好的人,平凡却不平庸,热情却不浮躁,不争抢、不迷茫,心态刚好,生活刚好。不负自己,不负生活,不负时光。。

《VBA高级应用30例》,是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三十个专题,今日内容是教程的前言及目录的部分:要持续提高自己的VBA实用技能


前 言

在我的教程中,《VBA之EXCEL应用》、《VBA代码解决方案》是初级教程;《VBA数组与字典解决方案》、《VBA数据库解决方案》、《VBA之WORD应用》、《VBA经典应用69例》是中级教程;《VBA信息获取与处理》、《VBA中类的解读和利用》和这套《VBA高级应用30例》是高级教程。而《VBA经典应用69例》及《VBA高级应用30例》又侧重于实际应用。希望大家能按顺序逐步掌握VBA的各个知识点。

VBA是一种实用的技能,应用的久了,技术上当然需要有所提高,为了满足广大学员的提高自己应用能力的要求,我特意编写了这套《VBA高级应用30例》教程。这套教程共三册,分30个专题,讲解了在实际应用中高级阶段要解决的问题,包括:利用加载项完成函数的分发;类模块的广泛应用;XML文件、压缩文件、及功能区的深入讲解;数组函数、集合函数与字符串函数的高级应用;递归、克隆与枚举技术的应用;文件导入与导出的高级应用,还涉及到随机函数及事件的高级讲解。其中利用加载项完成函数的分发贯穿了整个教程,这也是我们工作中如何升级自己程序的很好方案,希望大家能有效的利用。

第一册 目 录

序言 阻止对Sub和Functions的直接访问 6

1 设置模块为private 6

2 设置过程为Private 7

应用1 在EXCEL中构建加载项 9

1 创建加载项的目的及规范要求 9

2 创建母工作簿 10

3 建立工作模块 11

4 写入功能的代码 11

5 Ribbon(功能区)的介绍 16

6 自定义RibbonX(功能区)的实现 17

7 代码功能实现 19

8 必要事件的处理 21

9 确保打开文件时响应事件 24

10 创建外接程序 24

11 验证我们的程序 26

应用2 在列表框内及列表框间实现数据拖放 29

1 实现的工作原理 29

2 类模块代码的实现过程 32

3 窗体及模块的实现过程 43

4 在工作表界面窗体的加载 45

5 代码的运行结果 46

应用3 在Excel中的ListObject对象 49

1 创建表 49

2 循环列出当前工作表中的表 51

3 选择表的一部分 54

4 插入行和列 56

5 向表中添加注释 58

6 将表格转换回正常范围 59

7 表中数据的排序及数据的筛选 60

8 提取表内单元格的格式元素 64

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

1 打开工作薄时进行身份验证 70

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

3 利用键盘设置来阻止自动运行事件 75

4 利用技术手段来阻止自动运行事件 78

5 打开工作簿时自动运行事件的代码修正 80

应用5 利用VBA制作一个转盘游戏 90

1 实现转盘游戏的效果 90

2 实现转盘游戏的思路分析 90

3 转盘游戏代码实现之初始化设置 92

4 转盘游戏代码实现之转盘转动 94

5 转盘游戏代码实现之音效实现 98

6 最终的游戏过程 100

应用6 Excel文件的XML文件格式 108

1 .xlsx或.xlsm文件中的工作表数据 108

2 利用XML文件修改Excel单元格字符 112

3 利用XML文件修改Excel单元格格式 114

4 XML文件中窗体控件的简单介绍 118

5 利用VBA从XML文件中导出数值数据 122

6 利用VBA自定义工具栏 131

7 利用VBA与XML导出工作表中的图片 137

应用7 批量升级分发后的自定义函数处理方案 141

1 修复#NAME?的方法 143

2 检测工作簿打开 143

3 类的实例化处理 145

4 处理打开的工作簿 145

5 从资源管理器打开工作簿 148

6 所有代码的展示 150

7 代码的运行结果 154

应用8 使用类模块处理工作表控件事件 157

1 设置工作表,在工作表中添加控件 157

2 创建类模块 157

3 将控件与类模块关联 160

4 控制代码的执行 161

6 所有代码展示 162

7 代码的运行效果 164

应用9 表单控件和ActiveX控件使用总结 166

1 在哪里可以找到控件 166

2 控件的选择和使用 167

3 标签控件Label和框架控件Frame 167

4 按钮控件CommandButton 168

5 复选框CheckBox和选项按钮OptionButton 169

6 列表框ListBox控件 172

7 组合框控件ComboBox和滚动条控件ScrollBar 174

8 微调控件Spinner文本框控件TextBox 176

9 切换按钮ToggleButton 177

应用10 单元格颜色批量填充的操作及回滚 179

1 实现的效果及思路分析 179

2 存储模块(类模块)的代码 180

3 动作模块(类模块)的代码 184

4 实现的过程(普通模块)的代码 191

5 所有代码的展示及运行效果 194

第二册 目 录

序言 32位版本和64位版本Office 4

1 什么是32位或64位(Bits) 4

2 如何确定Office版本 4

3 关于64位Office 6

4 在运行时确定位数 7

应用11 VBA数组函数(上) 9

1 数组常用知识点 9

2 VBA数组的特点 9

3 CompareArrays函数:数组的比较 11

4 ConcatenateArrays函数:数组的追加 17

5 CopyArray函数:数组的复制 22

6 DataTypeOfArray函数:测试数组的数据类型 28

应用12 VBA数组函数(中) 34

7 DeleteArrayElement函数:删除一个数组元素 34

8 InsertElementIntoArray函数:插入数组元素 38

9 IsArrayAllNumeric数组:测试数组是否为数值 41

10 IsArrayAllocated函数:测试数组是否已经分配 44

11 IsArrayDynamic 函数:测试数组是否为动态数组 47

12 IsArrayEmpty函数:测试数组是否为空 49

13 NumberOfArrayDimensions函数:测试数组维数 52

应用13 VBA数组函数(下) 55

14 TransposeArray函数:二维数组的转置 55

15 IsArraySorted函数:测试数组是否已经排序 58

14 AreDataTypesCompatible函数:数组兼容性检查 62

应用14 在过程中传递和返回数组 69

1 将数组传递给过程 69

2 从函数返回数组 81

3 将数组分配给数组 88

4 多维数组的传递 91

5 在数组中循环 95

应用15 集合Collection与字典Dictionary函数(上) 98

1 ArrayToCollection 函数 98

2 ArrayToDictionary函数 103

3 CollectionToArray 函数 105

4 CollectionToDictionary 函数 108

5 CollectionToRange 函数 112

应用16 集合Collection与字典Dictionary函数(下) 118

6 DictionaryToRange 函数 118

7 DictionaryToArray 函数 122

8 RangeToDictionary 函数 125

9 RangeToCollection函数 130

应用17 键盘中键状态的测试 136

1 函数简介 136

2 函数的声明部分 136

3 IsShiftKeyDown 函数 138

4 IsControlKeyDown 函数 139

5 IsAltKeyDown函数 140

6 函数的应用测试 141

应用18 排重函数 145

1 DistinctValues函数的代码 145

2 函数代码的讲解 153

3 函数在单元格范围的函数测试 154

4 函数在单元格区域的测试: 155

5 函数在数组中的测试 157

6 函数在工作表中的应用 158

应用19 用于ListBox的加载项(上) 161

1 LBXSelectCount函数 161

2 LBXSelectedIndexes 函数 162

3 LBXSwapItems过程 164

4 LBXInvertSelection过程 168

5 LBXMoveToTop过程 170

6 LBXMoveUp过程 173

7 LBXMoveDown过程 177

应用20 用于ListBox的加载项(下) 182

8 LBXMoveToEnd过程 182

9 LBXSort过程 185

10 LBXSelectedItems函数 190

11 LBXUnSelectAllItems过程 193

12 LBXSelectAllItems过程 195

13 LBXIsListSorted函数 196

第三册 目 录

序言 VBA中引用的设置 4

应用21 VBA中事件(Events)和事件过程(Event Procedures) 8

1 对象的可用事件 8

2 事件代码位置 10

3 事件的层次结构 10

4 事件顺序 11

5 事件过程示例 12

6 用事件变量声明 13

7 应用程序事件 14

8 防止事件循环 15

9 调用多个事件 16

10 在类模块中创建自己的事件 19

应用22 VBA中的递归(Recursion)与克隆(Cloning) 22

1 递归的基本概念及理解 22

2 文件夹树状目录的提取 24

3 克隆文件夹 27

4 改名克隆 33

应用23 在VBA和Excel中使用随机数 42

1 Excel公式中的随机数 42

2 VBA中的随机数 44

3 RandomLongs 函数 46

4 UniqueRandomLongs 函数 52

5 ShuffleArray函数 58

6 ShuffleArrayInPlace 过程 60

应用24 VBA数组的排序 65

1 通过工作表排序 65

2 用VBA代码进行排序 67

应用25 VBA中枚举的应用---判断单元格类型 85

1 有效值的验证枚 86

2 枚举的自动值 87

3 复合值的设定 88

4 CountType 函数 90

5 CountType函数的代码 91

6 CountType函数的应用 96

应用26 文件是否打开及文件修改的判断 102

1 IsFileOpen函数 102

2 GetRecentFile函数 105

3 GetRecentFile_A函数(递归) 111

4 GetRecentFileRecurse 函数(递归) 116

应用27 字符串的连接与截取 123

1 StringConcat 函数 123

2 字符串的大小 130

3 ShortenTextToChars函数 131

4 TrimToChar 函数 135

5 SizeString函数 137

6 TrimToNull函数 139

应用28 使用Excel导出和导入文本文件 142

1 导出到文本文件 142

2 导入文本文件 146

3 导入大文本文件 151

应用29 Excel导出和导入固定长度字段的文本文件 167

1 ExportFixedWidth函数 167

2 ImportFixedWidth函数 174

应用30 构建自己UDF总结篇 184

1 简单的用户定义函数 184

2 函数的代码放在哪里 185

3 UDF与强制计算 187

4 从函数返回数组 188

5 从函数返回错误 195

6 确定调用 UDF 的范围 197

7 使用可变数量的参数 198

8 自定义函数返回一维数组 206

9 自定义函数返回二维数组 209

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

分享成果,随喜正能量】善人者,人亦善之。把自己的善心付诸实践,才是真善良!以善修心,以善洗心,以善治心,人就会快乐、幸福。

相关推荐

Docker部署 chatgpt-web-midjourney-proxy:开启一站式AI与绘图

ChatGPT和Midjourney的结合无疑是创新性的突破。ChatGPT作为强大的语言模型,能够为用户提供智能的对话和文本生成服务。而Midjourney则以其出色的绘画能力,能够根据...

Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建)

具体案例:局域网内有两台主机,一台Linux、一台Windows,现在需要配置一台Cacti监控服务器对这两台主机进行监控...

那些少为人知却非常有意思好用的 Chrome 扩展

ChromeWebStoreSessionManager要睡觉了,还有网页没看完怎么办?等明天点开歷史记录重新加载?No!有这个保存当前打开的链接,下回直接打开一串网址,好顶赞有木有!!!chr...

分享一款轻量级 HTTP(S) 代理 TinyProxy

概述众所周知,我们常用的Web服务器Nginx/Apache都可以很方便的用来做为正向或反向代理服务器使用。但是它们都并不支持HTTPS的正向代理。Nginx做为正向代理不支持HT...

深入理解 WebSecurityConfigurerAdapter「源码篇」

我们继续来撸SpringSecurity源码,今天来撸一个非常重要的WebSecurityConfigurerAdapter。我们的自定义都是继承自WebSecurityConfigurer...

RPC、Web Service等几种远程监控通信方式对比

几种远程监控通信方式的介绍一.RPCRPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.meth...

老酒好喝,5G时代数据中心柴油发电机组以GPRS方式接入动环监控

背景:随着手机的普及,电信运营商基站越建越多,网络覆盖范围也越来越广,基本上随时随地都能通过运营商的网络上网冲浪,这给我们传统的通过有线方式实现的动环监控也提带来了新的启发:对于不具备有线传输条件的的...

为了春节红包大战,微信做了一次成功的预热!

经过上午的预告,微信在今天下午17:00正式推出了微信红包新玩法——红包照片。微信用户在朋友圈点击照片发送按钮,会看到“红包照片”选项,用户在选择发布照片之后,这张照片将被模糊处理后,再发送到朋友...

Proxy-Lite实战:3步部署+2个案例,轻松掌握轻量级网页自动化

大家好,我是何三,80后老猿,独立开发者一、Proxy-Lite模型概述...

会Python?那么你一定要试一试mitmproxy

mitmproxy是一款工具,也可以说是python的一个包,使用这个工具可以在命令行上进行抓包(现在也可以在web页面上查看上抓的数据包了),还可以对所抓到的包进行脚本处理,非常有用。和...

十大Web安全扫描工具,你知道哪些?

初入门时,喜欢将目标站点直接丢扫描器,慢慢等扫描结果,极度依赖Web扫描器;而有一些漏洞高手,善于运用运用各种工具但并不依赖工具,经常可以找到扫描工具发现不了的漏洞。一款好用的Web扫描器对于白帽子来...

鸿蒙5网页开发神器 ArkWeb:让 Web 和原生手拉手跳舞

你有没有想过,在鸿蒙应用里既能用原生代码写高性能界面,又能直接塞进一个网页?这听起来有点像把汉堡和披萨拼在一起,但ArkWeb(方舟Web)真的做到了!今天咱们就聊聊这个神奇的工具,看看它如何让...

MapReduce过程详解及其性能优化(详细)

从JVM的角度看Map和ReduceMap阶段包括:第一读数据:从HDFS读取数据1、问题:读取数据产生多少个Mapper??Mapper数据过大的话,会产生大量的小文件,由于Mapper是基于虚拟...

大数据平台建设需要掌握的14个知识

Q1、大数据分析中的实时推荐是如何实现的?@rein07某证券系统架构师:实时推荐需要使用实时处理框架结合推荐算法,从而做到对数据的实时处理和推荐。实时处理框架有Storm、Flink、Spark...

HDFS可视化管理系统设计与实现(hdfs的可靠性设计,主要依靠哪些机制来实现)

摘要:Hadoop工具核心模块包括分布式文件系统(HadoopDistributedFileSystem,HDFS)和分布式编程模型MapReduce,其中HDFS是Hadoop数据存储处理的...

取消回复欢迎 发表评论: