精品EXCEL的VBA基础知识doc.docx
- 文档编号:24266479
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:16
- 大小:27.56KB
精品EXCEL的VBA基础知识doc.docx
《精品EXCEL的VBA基础知识doc.docx》由会员分享,可在线阅读,更多相关《精品EXCEL的VBA基础知识doc.docx(16页珍藏版)》请在冰豆网上搜索。
精品EXCEL的VBA基础知识doc
EXCEL的VBA基础知识
EXCEL的VBA基础知识
2009-06-0522:
36
VBA概述:
VBA是VisualBasicForApplication的缩写,是VB在office中的运用。
是基于VisualBasicForWindows发展而来的,VBForWindows是Microsoft于1992年推出的开发Windows应用程序的程序设计语言,由于基语法简单,易学易用,所以深受用户的欢迎。
而VBA和VBForWindows大体相似。
在Office2000之前,VBA在Word,Excel,Access等Office系统软件中的运用有些有同,但是到0ffice2000就统一•起来了。
Excel是第一个包含有VBA的应用程序,自0ffice2000以后,
Eexel,Word,PowerPoint,Access中已经有了统一「标准的宏语言VBA,其中Excel和Access的VBA最为成熟。
在Excel屮VBA程序即可以存放有.xls屮,也可以单独以文本形式存放。
对VBA的学习,用户首先必须VB有一•定的了解(不过不必很专业,毕竟经常用Excel的用户一般是办公人员,不可能是专业编程人员),然后结合宏记录器学习。
因为,宏记录器可以记录宏,用户可以非常清楚了然VBA的很多知识。
另外,如果不是功能很强大的VBA程序,那么用宏记录器就足够了。
打开密码记录器的方法,通过“工具一>宏一>录制新宏”。
另外,用户可能用“工具一>宏一>宏・・・”来管理宏。
用“工具一>宏一>VB编辑器”或Alt+Fl1可以打开VB编辑器,在编程器,可以很方便地整个工程进行管理,可以方便地编写VBA代码,另外,用户可以再点击Alt+Fl1切换到Excel窗口。
VBA的使用过程:
1、创建一个Excel文件。
2、创建一个控件,然后双击控件或是右击该控件,点击“查看代码”,就可以对该控件的某个事件,如click,keydown等。
进行编写执行代码了。
创建控件的方法是,点击“视图->工具栏->控件工具箱”,打开“控件工具箱”栏,然后就可以直接拖动某个控件到Excel-单元格屮去。
在Excel屮窗口,添加的控件一般是处于执行状态的,如果要对这个控件进行编辑,除了第一次建立的吋候可以对它进行属性编辑外,打开“控件工具箱”,也可以使控件处于编辑状态,如果还不行,可以再添加一个控件,然后已有的控件绝对会处于编辑状态。
当然,对控件修改完毕后,别忘了删除刚才新添加的没有用的控件。
在编辑状态屮,你可以右击该控件,点击“展性”,那么就可以打开属性窗口,在这个窗口里,你可以很方便的对这个控件的名字,标题,大小等属性进行编辑。
3、手动或用宏记录器对该控件的某个事件进行编码。
宏记录器简单易用,不过强大的功能还是必须手动编写VBAo
VBA对象介绍:
编写VBA代码的最关键在于灵活运用VBA对象,对这些VBA对象的属性或方法进行操作。
另外,你也可以创建自定义函数,来对某些操作进行封装。
既然是VBA,编码风格当然和VB相同,如果会VB,那么只要对VBA的对象比较了解,就可以编写功能强大的VBA程序;同样,如果不会VB,那么,只需要了解VBA的对象就够了,因为它比较简单易学。
以下分别讨论VBA各对象对其属性与方法:
在一些可以包含其他对象的窗口对象屮,有几个特殊的展性,其属性值是当前活动对象,对它们,可以直接引用。
表1—些特殊的属性
对象名含义
ActiveWorkbook当前工作簿,即如果你打开了几个Excel文件,那么你当然正在编辑的Excel文件即ActiveWorkbook
ActiveSheet肖前工作簿屮的当前工作表,即为前编辑的Excel文件屮正在编辑的工作表
ActiveCell当前工作表屮活动单元格
ActiveChart为前工作簿屮的活动图表
Selection当前被选定的对象
下面详谈各对象及它们的属性和方法
一、Application对象
此对象指Excel应用程序的工作环境。
<一〉属性
1、Caption属性
含义:
Excel应用程序标题栏显示的文本。
举例:
Application.caption="船员管理系统”,如赋值Empty,则恢复Excel默认的标题栏。
2、Cursor属性
含义:
Excel'P鼠标的形状。
表2Cursor属性
属性值鼠标形状
xlDefault缺少型值,鼠标呈缺少形状xlWait等待型值,鼠标呈不断翻转的沙漏形状xlNorthwestArrow箭头型值,鼠标呈标准箭头形状xlIBeam文本型值,鼠标呈“I”字形以等待用户输入文本
操作:
Application.Cursor=xlWait等。
3、DisplayAlerts属性
含义:
用以确定是否显示系统的应用提示和警告信息,如果不想显示,则把些属性设为false,反之亦然。
4、DisplayFormulaBar®性
含义:
用以确定是否显示公式编辑栏
5、DisplayScrollBars属性
含义:
用以确定是否显示Excel的滚动条
6、DisplayStatusBar属性
含义:
用以确定是否显示Excel的状态栏
7、EnableCancelkey属性
含义:
用以确定是否允许用户屮断正在执行着的VBA程序。
缺省情况下,在VBA程序执行过程中,用户按下Ctrl+Break能够中断VBA程序的执行。
此时此属性即值为xllnterrupto若要禁止屮断VBA程序,由赋值为xlDisabled;若需要VBA执彳亍过程屮遇到错误进小止,由赋值为xlErrorHandler
8、ScreenUpdating属性
含义:
用以确定是否显示VBA程序的屮间运算结果。
9、StatusBar属性
含义:
设置状态栏的文本
10ActiveWorkbook属性
含义:
如表1介绍。
11>ActiveSheet
含义:
如表1介绍。
12、ActiveCell属性
含义:
如表1介绍。
13、ThisWorkBook属性
含义:
用以返回正在执行着VBA程序所在的工作簿对象。
这不是肖前工作簿。
例如有多个工作簿打开时,ActiveWorkbook属性返回当前工作簿对象,ThisWorkbook返回正在运行着VBA程序所在工作簿对彖。
14、PathSeparator属性
含义:
返回文件文件路径分隔符,该属性是一个只读属性。
举例:
DimstrPathasString
strPath=App1ication.ThisWorkbook.Path/Application.PathSeperatorWorkbooks.OpenstrPath&"myExcel.xls"
15>UserName属性
含义:
设置肖前用户名称。
缺省用户是由Excel选项对话框的“常规”选项卡•P“用户姓名”决定的。
用户可以从“工具”菜单屮选择“选项”命令來打开选项并在“常规”选项卡的“用户姓名”文本框屮重新设置缺省的用户名称。
<二>方法
1、Cdlculdte方法
含义:
对Excel打开的工作簿屮所有的公式进行重新计算。
2、Goto方法
含义:
选择工作簿屮的一个Range对彖或一个VBA过程,格式如卜:
Application.GotoReferenee,Scroll
Reference参数表示Goto方法的fl的地,Scroll参数若为True,滚动条滚动以使Range对象出现在工作簿窗口左上角,为False,半前工作簿窗口不属性变化。
缺省值为Galse
举例:
Application.GotoRange(,ZC3,Z),True
3、InputBox方法
含义:
用于打开一个输入对话框,允许用户输入数据。
格式如下:
Application.TnputBox(prompt,title,1eft,top,helpFi1e,helpContextTD,type)
title参数
default参数left和top参数helpFile参数helpContextID参数识号
type参数况下,为文本型
用于设置输入对话框的标题文字
用于设置输入对话框的缺省输入值
用于设置输入对话框左上角的坐标值
用于设置输入对话框在线帮助的名称
用于设置输入对话框在线帮助主题的上下文标
用于设置输入对话框输入数据的类型。
缺省情
举例:
UserV81ue=Application.InputBox(〃请输入数据","数据输入
“,Type:
二7)
4、Onkey方法
含义:
按下某个或组合键时执行一段VBA代码。
自己尝试一下就知道了,也可
看一下VB编辑器的提示(即输入Applicatio.Onkey后,VB编辑器弹出的下拉提示。
二、Workbooks对象集
半前所有打开的工作簿对象的集合
1、CountM性,只读,返回Excel打开的工作簿数
〈二〉方法
1、Add方法,向工作簿对象集中•一个新的工作簿,相当于“文件-〉新建”命令。
格式如下:
Workbooks.AddTemplate
2、Open方法,打开一个指定的工作簿。
格式看一下VBA编辑器小的提示就行,太累了,不想写得这么全。
3>Close方法,关闭一个工作簿文件
三、Workbook对象
代表一个独立的工作簿文件
〈一*〉属性
1、ActiveSheet属性,返回当前T作簿小的活动T作表对象
2、Author属性,返回或设定工作簿的作者姓名,由此确定工作簿的所有者
3、Saved属性,用于瓢工作簿文件是否做过修改。
<二>方法
1、Activate方法,用于霜一个工作簿为当前活动工作簿,如,
Workbooks("myOffice.xls").Activate
2、Close方法,用于关闭指定的工作簿
3、Save方法,用于保存指定的工作簿
4、SaveAs方法,用于另存为指定的工作簿
四、Worksheets对彖集
代表为前T作簿所有的丁作表(Worksheet)的集合。
<—>属^^
1、Count属性,返回肖前工作簿屮的的工作表的数量
<二>方法
1、Add方法,向工作表对象集屮添加一・个新的工作表对彖,格式如下:
Worksheets.AddBefore,After,Count,Type
Before和After参数指哪一个工作表之前或之后插入新工作表。
取值为Worksheet
如:
Worksheets.AddBefore:
^Worksheets(〃Sheet2"),则相?
于在Sheet2工作表之前插入了一个新的工作表
五、Worksheet对象
代表工作簿一个独立的工作表。
获取某个工作表,可以用Worksheets(,z办公费用"),也可以用Worksheets(3)之类的语句
<-->属性
1、Nmne属性,设置或返回工作表对象的名称
2、Visible属性,确定是否隐藏某个工作表<二>方法
1、Calculate法,对指定的工作表中的所有公式进行重新计算
2、Copy方法,用于复制指定的工作表,并放置在指定的位置,实际是一•个复制与粘贴并重的函数,
格式:
Worksheet-Object.CopyBefore,After
如Worksheet("Sheet2").CopyAfter:
^Worksheets(〃办公费用"),相当于把Sheet2工作表复制,并把它放置在名为“办公费用”的工作表之后
3、Move方法,移动指定的工作表并放置在指定的位置,用户同Copy方法,区别只天于复制与剪切之不同
4、Delete方法,无参数删除指定的工作表,如Worksheet("Sheet2")・Delete
5、Cell方法,获取指定工作表指定行列的某个单元格
格式:
Worksheet-Object.Cells(Row,Col),Row,Col为整型,彳亍列值都从1开始
如Worksheet(z/Sheet2z/).Cell(1,1),相当于获取Sheet2工作表的第一,行第一列的单元格五、Range对象代表一个半桥区域,可以由多个半桥组成,也可是由一个单元格组成。
引用单元格可用以下两种方法:
一是使用单元格引用,如RangeCA19,RangerAl:
C3")二是使用单元格区域名称,如RangeCmyRange")。
<一〉属性
1、FormulaRlCl属性,为指定的单元格或单元格区域建立和存储公式,
如RangeCC5").FormulaRlCl=,z=SUM(R[-4]C:
R[-1]C)"
2、Value属性,为指定的单元格或单元格区域赋值,如为多个单元格,则都赋为同样的值
3、Cell属性,以指定的单元格为苦战來描述被引用的单元格,把指定的单元格视为第1行第1列
格式:
Range-Object.Cells(Row,Col)
4、Offset,以指定的单元格为苦战来描述被引用的单元格,把指定的单元格视为第0行第0列
格式:
Range-Object.Cel1s(Row,Col)
5、NameM性,返回或设定指定的单元格或单元格区域的名称,然后在VBA中,可以直接用名称为引用它
6、Count属性,返回指定的单元格区域屮包含的单元格的数只读
7、CurrentRegion属性,返回以某个单元格为基点的存储有数据的一个连结的单元格区域
〈二〉方法
1、Select方法方法,用于选择指定的单元格区域,执行后,该单元格区域左上角的第一个单元格成为活动单元格
如Range(Z,A1:
C3")・Seiect,Range(Z,A1:
C3,D5:
E6,A8:
E8).Select
2、Activate方法,用于选择指定的单元格并指定其成为活动单元格,当然只有该单兀格区域左上角的第一个单兀格成为活动单兀格。
3、AutoFit方法,调整选定的单元格区域所在行和列的行高与列宽,使其行高与列宽自动设定的最佳的高度与宽度。
如:
Range(〃A4〃).CurrentRegion.Seiect
Selection.Rows・AutoFit
4、Clear方法,清除指定的单元格区域的内容,格式和批注,相当于“编辑一>清除一>全部”
如:
Range(〃A4:
C5").Clear
5、ClearContents方法,清除指定的单元格区域的内容,相当于“编辑一>清除一>内容”
6、ClearFormats方法,清除指定的单元格区域的内容,相当于“编辑一>清除—>格式”
7、ClearComments和ClearNotes方法,清除指定的单元格区域的内容,相当于“编辑—>清除—>批注”
8、Copy方法,将指定单元格区域屮的数据库复制到剪贴板或指定的H的单元格区域中
9、Cut方法,将指定单元格区域屮的数据库剪切到剪贴板或指定的FI的单元格区域中
10、PasteSpecial方法,用于将剪贴板中复制或剪切下来的单元格区域中的数据库有选择地粘贴到指定的H的单元格区域屮
格式:
Range-Object.PasteSpecisl
Paste,Operation,ShipBlanks,Transpose
Paste参数规定了选择体积类型的数据进行粘贴,如公式,内容,批注等,具体取值可参考VB编辑器屮的提示
VBA是什么直到90年代早期,使应用程序自动化还是充满挑战性的领域•对每个需要自动化的应用程序,人们不得不学习一•种不同的自动化语言•例如:
可以用EXCEL的宏语言来使EXCEL自动化,使用WORDBASIC使WORD口动化,等等.微软决定让它开发出来的应用程序共亨一种通用的自动化语言Visual
BasicForApplication(VBA),可以认为VBA是非常流行的应用程序开发语言VISUALBASIC的子集•实际上VBA是寄生于VB应用程序的版本.VBA和VB的区别包括如下几个方而:
1.VB是设计用于创建标准的应用程序,jfljVBA是使己有的应用程序(EXCEL等)自动化
2.VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.
3.要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*・EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL.
尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实JL,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,半学会在EXCEL屮用VBA创建解决方案后,即已具备在WORDACCESSOUTLOOKFOXPROPROWERPOTNT屮用VBA创建解决方案的大部分知识.
*VBA-个关键特征是你所学的知识在微软的一些产品屮可以相互转化.
*VBA可以称作EXCEL的“遥控器”・
VBA究竟是什么?
更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.
此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序.
Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于ExcelsWord的VBA小程序不计其数。
VBA程序员很多是业余程序员,正因为业余,解决的却是工作屮需要解决的问题;所以,VBA程序大多都是只是在部门内部或个人使用的小工具。
集成了VBA的其他应用程序也很多,但真正能为程序增色的不多。
大多数人看到了VBA可以自动化一个程序,可以扩展己有程序,但没有看到在Office'p,VBA代码可以是录制的,而不是写出来的,带来的好处是,学习曲线变得非常缓。
如果没有宏录制功能,要熟悉某个Office组件的对象模型,绝非一tl之功。
以ArcGTS为例,ArcGTS扩展必须使用ArcObject,不管是使用VBA也罢,VB也罢,还是C++也罢。
但同时,ArcObject的学习不是一天两天可以搞定,对于业余程序员,要使用VBA来扩展ArcGIS,儿乎没有可能;专业程序员乂不屑使用而对于公司,如果要基于ArcObject来扩展ArcGIS,选择VBA意味着源码的保护很困难。
所以,ArcGIS的VBA就如同鸡肋。
不过,学习A0的时候,使用VBA比使用其他语言要容易一•些,写几行代码,然后直接运行测试结果,这种交互式的学习应该是最好的学习方法。
ArcGIS以及A0与Office相比,还有一个很大的差别,就是ArcGIS缺乏中等粒度的对象,例如Word和Excel的Reinge对象。
对于Office开发,可以在对底层小粒度对象一无所知的状况下做很多事情,这就是抽象的力量。
常人可以处理的复杂度是有限的,面对数十个对象和几百个对象,后者需要付出的努力不是10倍,而是数十倍或更多,因为在学习过程屮,必须可以把这些对彖在大脑屮很好的组织,以控制其复杂度。
VisualBasicforApplications(简称VBA)是新一-代标准宏语言,是基于VisualBasicforWindows发展而来的。
它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。
而VBA提供了而向对彖的程序设计方法,提供了相当完整的程序设计语言。
VBA易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA程序代码。
这样用户可以容易地将日常工作转换为VBA程序代码,使工作自动化。
因此,对于在工作屮需要经常使用Office套装软件的用户,学用VBA有助于使工作自动化,提高工作效率。
另外,由于VBA可以直接应用Office套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。
[编辑本段]
VBA基础
VisualBasic的应用程序版(VBA)是Microsoft公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft可编程应用软件所共亨。
在没有VBA以前,一•些应用软件如Excel、Word>Access>Project等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门去学习,它们Z间互不兼容,使得应用软件2间不能在程序上互联。
拥有一种可跨越多个应用软件,使各应用软件产品具有高效、灵活且一致性的开发工具是至关重要的。
VBA作为一种新一代的标准宏语言,具有上述跨越多种应用软件并口具有控制应用软件对象的能力,使得程序设计人员仅需学习一种统一的标准宏语言,就可以转换到特定的应用软件上去,程序设计人员在编程和调试代码时所看到的是相同的用户界而,血且VBA与原应用软件的宏语言和兼容,以保障用户在代码和工作上的投资。
有了VBA以后,多种应用程序共用一种宏语言,节省了程序人员的学习时间,提高了不同应用软件间的相互开发和调用能力。
在Office2000中,宏语言VBA适用于所有应用程序,包括Word、Excel、PowerPoint>Access、Outlook以及Project。
在Office97的各应用程序中,新增了VisualBasic编辑器。
这样,用户龙论是在Excel屮,还是在Word'p以至是在Access屮建立和管理VBA都具有统一的方法和标准。
在介绍如何利用VBA提高工作效率之前,首先介绍一•些与VBA有关的基础知识。
[编辑本段]
VB与VBA
VBA是基于VisualBasic发展而来的,它们具有相似的语言结构。
VisualBasic是Microsoft的主要图形界面开发工具,VBA5.0(亦即VBA97)则是VisualBasic5.0的了集。
VisualBasic是由Basic发展而来的第四代语言。
VisualBasic作为一「套独立的Windows系统开发工具,可用于开发Windows环境下的各类应用程序,是一•种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言。
它具有高效率、简单易学及功能强大的特点。
VB的程序语言简单、便捷,利用其事件驱动的编程机制,新颖易用的可视化设计工具,并使用Windows应用程序接口(API)函数,采用动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)以及开放式数据库访问(ODBC)等技术,可以高效、快速地编制出Windows环境下功能强大、图形界面丰富的应用软件系统。
VisualBasic程序很大一部分以可视(Visual)形式实现,这意味着在设计阶段就可以看到程序运行的屏幕画面,用户可以在设计时能够方便地改动画面图像、大小、颜色等,直到满意为止。
VB的用户可以是缺乏Windows及C语言开发经验的专业软件人员,也可以是具有一定Windows开发经验的专业人员,VB的可视化编程方法使得原来繁琐枯燥、令人生畏的Windows应用程序设计变得轻松自如、妙趣横生。
以往的Windows应用程序开发工具在设计图形用户界面时,都是采用编程的方法,并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 EXCEL VBA 基础知识 doc