要持续提高自己的VBA实用技能 vba提升代码运行速度
yuyutoo 2024-10-20 13:05 7 浏览 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实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】善人者,人亦善之。把自己的善心付诸实践,才是真善良!以善修心,以善洗心,以善治心,人就会快乐、幸福。
相关推荐
- 苹果要求全新App开发四月起必须支持“齐刘海”
-
今日消息,苹果公司通过邮件告知应用程序开发者,从2018年4月起提交给AppStore的所有新应用必须支持iPhoneX的超级视网膜显示器。这意味着新应用程序的开发者必须确保它们适应“齐刘海”,并...
- 耗时一年多,QEMU开发者成功在电脑上模拟了初版iPhone OS
-
IT之家12月24日消息,用户通过黑苹果(Hackintosh)工具,已经可以在非Mac设备上运行macOS系统。但由于种种限制,至今也没有多少人能够在PC上运行iOS系统。现...
- 下个月的WWDC后,苹果将发布原生Watch SDK测试版本
-
在近日Re/code举办的CodeConference上,苹果的运营副总裁JeffWilliams称,目前有4000多个AppleWatch应用上线,而未来的苹果表开发者套件,将允许开发者直接获...
- 苹果再次提醒:4月起强制要求APP进行适配
-
点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事!软件适配对于许多厂商来说都是一个比较头疼的事,苹果在握紧AppStore审核权的情况下情况要好许多。最近他们公布了...
- 苹果Xcode 16首个Beta版发布,AI代码补全最少需16GB内存
-
IT之家6月12日消息,在苹果WWDC24开发者大会上,苹果发布了iOS18、macOS15Sequoia等最新版本系统更新。与此同时,苹果推出了Xcode16开发工具的首...
- 传苹果已向特定开发者开放iWatch SDK
-
|责编:薄志强苹果会不会在这次发布会中发布全新的智能手表产品iWatch还很难说,不少人认为由于iWatch的消息少之又少,很可能这次还是没有iWatch。不过现在又有外媒传出消息称,苹果已经选定了...
- 苹果发布Swift 6语言:引入新测试框架、增强C++ 互操作性
-
IT之家9月20日消息,科技媒体devclass昨日(9月19日)报道,苹果公司在发布iOS/iPadOS18和macOS15Sequoia系统之外,还发布了Sw...
- 发布Siri SDK 之前苹果还是先想想这个问题
-
今年的GoogleI/O大会上,在预览GoogleHome时,我们就看到了设备可以互相对话的场景是多么惊艳,苹果快点跟上吧。最近因为亚马逊Echo和谷歌GoogleHome的火热...
- iOS 17.2 SDK代码确认古尔曼爆料:免开箱更新苹果iPhone系统
-
IT之家10月27日消息,彭博社的马克古尔曼(MarkGurman)本月早些时候发布报道,称苹果正在研发新的系统,可以让员工在不拆开包装的情况下,升级iPhone的iOS系统。根据国...
- 《企业应用架构模式》之事件驱动架构
-
事件驱动架构(Event-DrivenArchitecture,EDA)是一种强调事件流和异步通信的应用程序架构。在该架构中,应用程序被分解为多个小型、可独立部署的组件,这些组件通过事件进行通信...
- k8s中常用的controller以及用途和对应机制
-
controller的用途ReplicaSet、Deployment、StatefulSet:用于无状态和有状态应用的副本管理。DaemonSet:确保每个节点上都运行一个副本的控制器。...
- Disruptor框架源码阅读-如何不重复消费
-
RingBuffer如何保证数据不丢失由于ringbuffer是一个环形的队列,那么生产者和消费者在遍历这个队列的时候,如何制衡呢?1、生产快,消费慢,数据丢失?生产者速度过快,导致一个对象还没消...
- C# 控制电脑睡眠,休眠,关机以及唤醒
-
最近碰到一个关于芯片测试过程中的问题,这颗芯片是用在笔记本端口上,笔记本客户那边会有一个压力测试,就是频繁的电脑电源状态切换,S0(正常使用的开机状态),S3(睡眠模式),S4(休眠模式)以及S5(关...
- 大厂防止超卖的7种实现,很受用!(大厂防止超卖的7种实现,很受用的产品)
-
高并发场景在现场的日常工作中很常见,特别是在互联网公司中,这篇文章就来通过秒杀商品来模拟高并发的场景。本文环境:...
- 臻识车牌识别配制MQTT通讯,解析车号
-
在物联网项目中,我们的软件与车牌识别通讯,通常使用MQTT通讯更简单。...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
【开源分享】2024在线客服系统PHP源码(安装教程+全新UI)
-
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)