友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
飞读中文网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

excel_vba_编程教程(完整版)-第32章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



NumOfCells,First_Name。(译者:中文也可以做为变量名称使用,但是,个人不建议使用中文)  
技巧3-1 不能用作变量名称的词语  
除了这些VBA占用了的词语之外,你可以使用任何你想用的标签作为变量名称。在VBA中有特定意义 
的VB语句以及其它某些词语不能用作变量名称。例如,词语Name,Len,Empty,Local, Currency 
或者Exit,如果你使用它们作为变量名,将会产生错误。  
技巧3-2 富有意义的变量名称  
给变量那种可以帮助你记住它们作用的名称。有些程序员使用前缀来识别变量类型。在你的代码中, 
一个以前缀“str”开头的变量名称(例如strName),很快就可以知道它是传递文本字符串的变量。  

3 数据类型  

当你创建VB过程时,你脑海里必然有个目的,你想要处理数据。因为你的过程要处理不同类型的信 
息,所以,你应该了解VB如何储存数据。“数据类型”这个术语决定了数据如何储存在电脑的内存 
里。例如,数据可以储存为数字,文本,日期,对象,等等。如果你忘了告诉VB你的数据类型,VB 
将分配数据类型为“Variant”。“Variant”类型有能力解决数据本身的操作类型并且使用该类型。 
表3-1里列出了VB数据类型。除了内置的数据类型之外,你还可以定义你自己的数据类型。(你将 
在第八章里看到用户自定义的数据类型的例子。)因为不同的数据类型占据电脑内存的空间是不一 
样的,一些类型比另外一些更“贵”些,因此,为了保存内存并确保你的过程运行更快,你应该选 
择占用字节最少的,同时又能够处理你数据的数据类型。  
表3-1 VBA数据类型  

                                            69 

… 页面 86…

数据类型(名称)       大小(字节) 描述  
Boolean                2            逻辑值True或False  
Byte                   1            0到255的整数  
Integer                2             –32;768到32;767的整数  
Long                   4             –2;147;483;648到2;147;483;647的整数  
Single                 4             单精度浮点数值  
                                     负数:–3。402823E38到–1。401298E–45  
                                     正数:1。401298E–45到3。402823E38  
Double                 8            双精度浮点数值  
                                     负     数      :      –1。79769313486231E308       到 
                                     –4。94065645841247E–324  
                                     正数:4。94065645841247E–324到1。79769313486231E308  
Currency               8             (放大的整数(译者:整数除以10000得到的数值,参见VBA 
                                     帮助))使用在定点计算中:  
                                     –922;337;203;685;477。5808                          到 
                                     922;337;203;685;477。5807  
Decimal                14            +/–79;228;162;514;264;337;593;543;950;335没有小数 
                                     点;  
                                     +/–7。9228162514264337593543950335小数点后有28位数 
                                     字;  
                                     最小的非0数字是  
                                     +/–0。0000000000000000000000000001  
Date                   8            从100年1月1日到9999年12月31日的日期  
String(变长字符串)  10字节+字      变长字符串最多可包含大约 20 亿 ( 2^31)个字符。  
                       符串长度  
String(定长字符串)  字符串长度   定长字符串最多可包含大约65;400 个字符。  
Object                 4             对象变量用来引用Excel中的任何对象  
Variant(带数字)      16           最高范围到Double类型的任何数值  
Variant(带字母)      22字节+字     和变长字符串的范围一样  
                       符串长度  
用户定义类型           成员所需的    每个成员的范围和它的数据类型的范围一致  
 (使用Type)          数值  
  

4 如何产生变量  

你可以通过一个专门的命令来声明变量从而产生一个变量,或者也可以直接在语句里使用变量(而 
不需要声明)。当你声明变量时,你实际上让VB知道该变量的名称和数据类型,这叫做“强制显式 
声明变量”。  
如果你在使用变量前不告诉VB关于该变量的任何信息,你这是在含蓄地告诉VBA你想要创建这个变 
量。没有明确声明的变量会自动地分配为Variant数据类型(参见表3-1)。虽然不声明变量很方便 
 (你可以随意创建变量,并且不用事先知道被赋值的数值的数据类型就可以赋值给该变量),但是, 
它会导致很多问题,参见技巧3-4中要点。  
技巧3-3 强制显式声明变量的好处  
    存  
    动更正变量名称。  
技巧3-4 隐式声明变量的坏处  

                                            70 

… 页面 87…

    要浪费很多时间来做故障排除,然而,如果在过程前声明了变量,这些很容易避免  
    运行要慢一些,因为VB每次在处理这个变量时不得不检查数据类型。因为Variant可以储存任 
    何一种数据类型,VB不得不占用更多的内存来储存你的数据  

5 如何声明变量  

你可以使用关键字Dim来声明变量,Dim代表“Dimension”。关键字Dim后面紧跟变量名称,再后面 
就是数据类型。假设你想让过程显示员工的年龄,你计算年龄之前,必须给过程提供员工的生日。 
你可以这样做,声明一个叫DateOfBirth的变量:  
Dim DateOfBirth As Date  
注意,关键字Dim之后是变量名称(DateOfBirth)。如果你不喜欢这个名称,你可以自由地改为其 
它的,只有你想用的名称不是VBA关键字之一就行。关键字As以及后面的表3-1其中的一个数据类 
型,明确了该变量的数据类型。数据类型Date告诉VB变量DateOfBirth将会储存日期。  
要储存员工的年龄,按下面方式声明变量Age:  
Dim Age As Integer  
变量Age将会储存今天和该员工生日之间年数的数字。因为年龄显示为整年,所以变量Age就被分配 
为Integer数据类型。  
你可能还想要你的程序追踪员工的姓名,因此需要声明另一个变量来保存员工的名和姓:    
Dim FullName As String  
因为词语“Name”已经在VBA占用的清单上,在你的VBA程序里使用它的话保证会有错误。将变量命 
名为FullName并且将它声明为String类型(因为员工姓名是文本),来保存员工姓名。  
技巧3-5 隐式声明变量  
没有用Dim语句来明确声明的变量叫做隐式声明。这些变量自动会被分配一个数据类型Variant。它 
们可以保存数字,字符串和其它信息类型。你可以通过在你VBA程序的任何地方,简单地赋值给一 
个变量名称来创建一个变量。例如,你可以按下述方式来隐式声明变量:DaysLeft = 100  
声明变量被认为是编程的好习惯,因为它使程序可读性增强并且帮助避免某些类型的错误。既然你 
已经知道了如何声明变量,我们就来看一下使用它的一个程序:  
Sub AgeCalc( )   
        ‘variable declaration (变量声明)  
       Dim FullName As String   
       Dim DateOfBirth As Date   
       Dim Age As Integer   
       'assign values to variables (赋值给变量)  
       FullName = 〃John Smith〃   
       DateOfBirth = #01/03/1967#   
       'calculate age (计算年龄)  
       Age = Year(Now())…Year(DateOfBirth)   
       'print results to the Immediate window (在立即窗口里打印结果)  
       Debug。Print FullName & 〃 is 〃 & Age & 〃 years old。〃   
End Sub  
 (译者:Debug是非常好的工具,它让对象在运行时将结果在立即窗口上显示)  
变量在程序的开始部分就被声明了,从那里开始,它们就可以使用了。在上面的过程里,每个变量 
声明在分开的行。如果你想,你也可以同时在一行里声明好几个变量,用逗号分开每个变量,例如:  
Dim FullName As String; DateOfBirth As Date; Age As Integer   
注意,关键字Dim只在变量声明行的开头出现了一次。  
当VB执行变量声明语句时,它产生了有确切名称的变量,并且占用内存空间来储存它们的值,然后, 
明确的值被赋给这些变量。如何给变量赋值?变量名称,之后是一个等号,等号的右边是你希望用 
该变量储存的数据。这里你输入的数据必须是该变量声明的数据类型。文本数据应该使用引号包括 
起来,而日期需要用井号#包括起来。VB使用DateOfBirth提供的数据来计算员工的年龄,并且将计 
算结果储存到Age这个变量。员工的姓名和年龄通过指令Debug。Print打印到立即窗口。当程序运行 

                                           71 

… 页面 88…

结束后,
返回目录 上一页 下一页 回到顶部 1 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!