大家通过之前的介绍,已知道怎么将一个空模块插入VBA的工程中。从插入模块中可以看到,模块有有两种——标准模块与类模块。类模块是含有类定义的特殊模块,包括其属性和方法的定义。在后面会有介绍与说明。

随着工程越来越委员复杂,我们就有可能会有多个模块。使用多模块的好处就是,它允许将相关的过程聚合在一起,使代码的可维护性与可重用性大大提高,更使我们能够方便地管理代码。通过不同的模块,我们还可以为不同模块定制不同的行为,定制模块行为的方法有4种:

1、Option Explicit。当使用Option Explicit时,必须在模块中的所有过程声明每一个变量,否则会出现语法错误并不能被编译。这样做的好处是,它能消除程序中因为错拼变量名而导致程序错误,所以见意使用此选项。自动设定的方法:在VBA编辑器工具菜单中选项里的编辑器选卡中的要求声明变量选项选上即可。这个每次插入新模块时会自动插入此声明。

2、Option Private Module。当使用此设定时,模块中的代码将标记为私有,这样在宏对话框中就不能看到这些代码,也就是在Excel主界面的工具/宏/宏的对话框中不会显示私有的子程序名称,这也防止了模块的内容被其它工程引用,不过在同一工程中的其它模块仍然是可用的。

3、Option Compare {Binary | Text | Database}。用于声明字符串比较时所用的缺省比较方法。如果模块中没有 Option Compare 语句,则缺省的文本比较方法是 Binary。

Option Compare Binary 是根据字符的内部二进制表示而导出的一种排序顺序来进行字符串比较。在 Microsoft Windows 中,排序顺序由代码页确定。典型的二进制排序顺序如下例所示:

A < B < E < Z < a < b < e < z < _ < _ < _ < _ < _ < ?

Option Compare Text 根据由系统区域确定的一种不区分大小写的文本排序级别来进行字符串比较。当使用Option Compare Text 对相同字符排序时,会产生下述文本排序级别:

(A=a) < ( _=_) < (B=b) < (E=e) < (_=_) < (Z=z) < (_=_) 

Option Compare Database 只能在 Microsoft Access 中使用。当需要字符串比较时,将根据数据库的区域ID 确定的排序级别进行比较。

4、Option Base {0 | 1}。用来声明数组下标的缺省下界。

注意 Dim、Private、Public、ReDim 以及 Static 语句中的 To 子句提供了一种更灵活的方式来控制数组的下标。不过,如果没有使用 To 子句显式地指定下界,则可以使用 Option Base 将缺省下界设为 1。使用 Array 函数或 ParamArray 关键字创建的数组的下界为 0;Option Base 对 Array 或 ParamArray 不起作用。

Option Base 语句只影响位于包含该语句的模块中的数组下界。

VBA标准模块与类模块的更多相关文章

  1. VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别

    在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10")  VB的语法,使用参数的不一定是方法,也有可能是属性 ...

  2. Excel VBA批量处理寸照名字(类模块加FSO版)

    需求:因为处理学生学籍照片,从照相馆拿回来的寸照是按班级整理好,文件名是相机编号的文件.那么处理的话,是这么一个思路,通过Excel表格打印出各班A4照片列表,让学生自行填上照片对应姓名.表格收回来后 ...

  3. VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)

    一.关于起因 前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. V ...

  4. Python标准库之核心模块学习记录

    内建函数和异常 包括__builtin__模块和exceptions模块 操作系统接口模块 包括提供文件和进程处理功能的os模块,提供平台独立的文件名处理(分拆目录名,文件名,后缀等)的os.path ...

  5. 获取VB类模块成员函数指针(转)

    最近在做一些VB6.VBA的项目,被如何获取类模块中的函数指针这个问题所困扰,收集整理后,有2分资料值得收藏,特将关键部分留存,以备后续查找. 参照连接1:http://www.cnblogs.com ...

  6. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

  7. VB-创建类模块DLL文件

    最近需要调用MSCOMM32.OCX控件,但是ABAP调用过程中发现无法同时发送多条记录,则需调整实现方式: a.创建DLL文件封装MSCOMM控件相关属性及方法 b.系统注册DLL文件 c.ABAP ...

  8. 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天

     孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...

  9. python常用标准库(时间模块 time和datetime)

    常用的标准库 time时间模块 import time time -- 获取本地时间戳 时间戳又被称之为是Unix时间戳,原本是在Unix系统中的计时工具. 它的含义是从1970年1月1日(UTC/G ...

随机推荐

  1. 长方形—C++

    编程之美一道简单的热身题,活生生的组合数学例子啊. 题意如下: 在 N 条水平线与 M 条竖直线构成的网格中,放 K 枚石子,每个石子都只能放在网格的交叉点上.问在最优的摆放方式下,最多能找到多少四边 ...

  2. iOS学习笔记---oc语言第七天

    类的扩展 NSDate是Cocoa中用于处理日期和时间的基础类,封装了某一给定的时刻,具体的日期 时间和时区 使用+date方法获取当前日期和时间 NSDate *date = [NSDate dat ...

  3. abap程序修改程序

    *&———————————————————————**& Report ZHELI_CODE*&*&———————————————————————**&*&am ...

  4. 21. Merge Two Sorted Lists

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  5. 网络延迟查看器 Network latency view 1.4

    这是个用于查看网络延迟/ip/主机/地区的工具,内外网通吃,外网可通过这里下载csv以显示国家(地区) 可以自己决定winpcap或者原始套接字进行捕捉 如果只扫描内网推荐angryip 这是款发布在 ...

  6. mysql最大连接数

    通常,mysql的最大连接数默认是100, 最大可以达到16384.1.查看最大连接数:show variables like '%max_connections%';2.修改最大连接数方法一:修改配 ...

  7. urlscan使用详解

    0x01 简介与下载  URLScan是集成在IIS上的,可以制约的HTTP请求的安全工具.通过阻止特定的HTTP请求,URLScan安全工具有助于防止潜在的有害的请求到达服务器上的应用. 最新版UR ...

  8. UVa 10935卡片游戏

    很简单的一个题目,就是队列的运用就可以了,就是注意一下1的时候的情况就可以了. #include<iostream> #include<queue> using namespa ...

  9. 工作中遇到的问题--使用DTO减少数据字段

    Location中包含如下字段以及AMfgObject中关于创建信息的字段,然而有时使用并不需要传输那么多数据,则对其中字段进行过滤. @Entity@Table(name = "LOCAT ...

  10. <老友记>学习笔记

    这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...