VBA学习资料.docx

上传人:b****6 文档编号:5827698 上传时间:2023-01-01 格式:DOCX 页数:178 大小:121.86KB
下载 相关 举报
VBA学习资料.docx_第1页
第1页 / 共178页
VBA学习资料.docx_第2页
第2页 / 共178页
VBA学习资料.docx_第3页
第3页 / 共178页
VBA学习资料.docx_第4页
第4页 / 共178页
VBA学习资料.docx_第5页
第5页 / 共178页
点击查看更多>>
下载资源
资源描述

VBA学习资料.docx

《VBA学习资料.docx》由会员分享,可在线阅读,更多相关《VBA学习资料.docx(178页珍藏版)》请在冰豆网上搜索。

VBA学习资料.docx

VBA学习资料

VBA帮助

(摘自Office2000VBA帮助)

一、VBA入门知识

1、激活工作簿

2、创建新工作簿

3、打开工作簿

4、用编号引用工作表

5、用名称引用工作表

6、将文档保存为Web页

7、用A1样式的记号引用单元格和单元格区域

8、用编号引用单元格

9、引用行或列

10、用快捷记号引用单元格

11、引用命名单元格区域

12、按相对于其他单元格的方式来引用单元格

13、用Range对象引用单元格

14、引用工作表上的所有单元格

15、引用若干单元格区域

16、在单元格区域中循环

17、选定和激活单元格

18、处理三维区域

19、处理活动单元格

20、在工作表上使用ActiveX控件

21、在文档中使用ActiveX控件

22、创建自定义对话框

23、在窗体上使用MicrosoftOfficeWeb组件

24、内置对话框参数表

25、使用MicrosoftExcel对象的事件

26、在VisualBasic中使用MicrosoftExcel工作表函数

27、处理形状(图形对象)

28、在某一MicrosoftOffice应用程序中控制其他MicrosoftOffice应用程序

29、OLE程序标识符

30、关于数字签名

31、启动MicrosoftExcel时不运行“自动执行宏”

32、焦点

二、了解对象、属性、方法和事件

1、了解对象、属性、方法和事件

2、Application对象

3、Workbook对象

4、Workbooks属性

5、Range对象

6、Range属性

7、Cells属性

8、Caller属性

9、Offset属性

10、Rows属性

11、Activate事件

12、Activate、Deactivate事件

13、Activate方法

14、WorkbookActivate事件

15、WindowActivate事件

16、OnError语句

17、在工作表上使用ActiveX控件

18、Add方法(Scenarios集合)

19、Scenarios集合对象

20、Add方法(Validation对象)

21、Validation对象

22、Validation属性

23、Open事件

24、Open方法

25、Click事件

26、Close方法

27、Change事件

28、Value属性

29、DblClick事件

30、SheetBeforeRightClick事件

31、Select方法

32、Select事件

33、Goto方法

34、Worksheet对象

35、SheetChange事件

36、SheetActivate事件

37、OpenLinks方法

38、Enabled属性

三、VBA语法

(一)VisualBasic的命名规则

1、写VisualBasic语句

2、写声明语句

3、Dim语句的语法

4、Activate方法的语法

5、Set语句

6、MsgBox函数的语法

7、选项语句的语法

8、AddressOf运算符

9、了解变体

10、写赋值语句

11、写可执行的语句

12、Public语句

13、Private语句

14、使用数组

15、使用常数

16、AppActivate语句

17、Beep语句

19、Date语句

20、Error语句      

21、Exit语句

22、GoSub...Return语句      

23、GoTo语句      

24、Input#语句      

25、Let语句      

26、Load语句      

27、Name语句      

28、On...GoSub、On...GoTo语句      

29、Open语句      

30、Rem语句      

31、Stop语句      

32、Time语句      

33、

While...Wend语句   

(二)逻辑语句

1、If...Then...Else语句

2、使用SelectCase语句

3、使用For...Next语句

4、ForEach...Next语句

5、Do...Loop语句

6、With语句

(三)过程

1、写Sub过程

2、写Function过程

3、写Property过程

四、ActiveX控件

1、AfterUpdate事件

2、Click事件

3、Click事件、命令按钮控件、Accelerator和Caption属性示例

4、DblClick事件

5、Error事件

6、KeyDown和KeyUp事件

7、KeyPress事件

8、KeyPress事件示例

9、MouseDown和MouseUp事件

10、MouseMove事件

11、列表框控件

12、SpinDown和SpinUp事件

13、SpinDown、SpinUp事件和Delay属性示例

14、组合框控件

15、命令按钮控件

16、标签控件

17、列表框控件、DataObject对象、MouseMove事件和StartDrag、SetText方法示例

18、多页控件

19、选项按钮控件

20、文本框控件

21、切换按钮控件

22、用户窗体窗口

一、VBA入门知识

1、激活工作簿

用Activate方法激活工作簿后,该工作簿将放在活动窗口中。

下述过程激活已打开的工作簿“MyBook.xls”。

SubMakeActive()

Workbooks("MyBook.xls").Activate

EndSub

2、创建新工作簿

如果要用VisualBasic创建新的工作簿,应使用Add方法。

下述过程创建了新工作簿。

MicrosoftExcel自动将该工作簿命名为“BookN”,其中N是下一个可用的数字。

新工作簿将成为活动工作簿。

SubAddOne()

Workbooks.Add

EndSub

创建新工作簿的较好的方法是将其赋给一个对象变量。

下例中,由Add方法返回的Workbook对象赋给了对象变量newBook。

然后,又设置了newBook的若干属性。

使用对象变量可以很容易地控制新工作簿。

SubAddNew()

SetnewBook=Workbooks.Add

WithnewBook

.Title="1995Sales"

.Subject="Sales"

.SaveAsfilename:

="95Sales.xls"

EndWith

EndSub

3、打开工作簿

用Open方法打开一个工作簿时,该工作簿将成为Workbooks集合的成员。

下述过程打开C盘上“MyFolder”文件夹内的工作簿“MyBook.xls”。

SubOpenUp()

Workbooks.Open("C:

\MyFolder\MyBook.xls")

EndSub

4、用编号引用工作表

编号是赋予工作表的连续的数字,这些数字的顺序,是根据同一类型的工作表的标签位置按由左而右的顺序确定的。

下述过程使用Worksheets属性激活活动工作簿上的第一张工作表。

SubFirstOne()

Worksheets

(1).Activate

EndSub

如果要处理所有类型的工作表(工作表、图表、模块表和对话框编辑表),可用Sheets属性。

下述过程激活工作簿中的第四张工作表。

SubFourthOne()

Sheets(4).Activate

EndSub

注意移动、添加或删除工作表时,编号顺序将会改变。

5、用名称引用工作表

使用Worksheets属性和Charts属性时,可用名称标识工作表。

下述语句激活活动工作簿内的不同工作表。

Worksheets("Sheet1").Activate

Charts("Chart1").Activate

DialogSheets("Dialog1").Activate

可用Sheets属性返回工作表、图表、模块表或对话框编辑表;Sheets集合包含了所有这些表。

下例激活活动工作簿内的图表“Chart1”。

SubActivateChart()

Sheets("Chart1").Activate

EndSub

注意嵌入到工作表上的图表是ChartObjects集合的成员,而那些位于单独的表上的图表则属于Charts集合。

6、将文档保存为Web页

在MicrosoftExcel2000中,可以将工作簿、工作表、图表、区域、查询表、数据透视表报表、打印区域或自动筛选区域保存到Web页中。

也可以直接在Excel中编辑HTML文件。

将文档保存为Web页

将文档保存为Web页是一个创建并保存HTML文件及其支持文件的过程。

要完成此过程,可使用SaveAs方法,如下例所示,此示例将活动工作簿保存为文件“C:

\Reports\myfile.htm”。

ActiveWorkbook.SaveAs_

Filename:

="C:

\Reports\myfile.htm",_

FileFormat:

=xlHTML

自定义Web页

通过设置DefaultWebOptions对象和WebOptions对象的属性,用户可以自定义HTML文档的外观、内容、浏览器支持、编辑支持、图形格式、屏幕分辨率、文件组织和编码。

DefaultWebOptions对象中包含应用程序级别的属性。

而任何具有相同名称的工作簿级别的设置(包含在WebOptions对象中)会覆盖这些设置。

设置完属性后,可以使用Publish方法将工作簿、工作表、图表、区域、查询表、数据透视表报表、打印区域或自动筛选区域保存到Web页中。

下例设置了一些应用程序级别的属性,然后又设置了活动工作簿的AllowPNG属性,而此设置将覆盖应用程序级别的默认设置。

最后,本示例将该区域保存为“C:

\Reports\1998_Q1.htm”。

WithApplication.DefaultWebOptions

.RelyonVML=True

.AllowPNG=True

.PixelsPerInch=96

EndWith

WithActiveWorkbook

.WebOptions.AllowPNG=False

With.PublishObjects

(1)

.FileName="C:

\Reports\1998_Q1.htm"

.Publish

EndWith

EndWith

也可以直接将文件保存到Web服务器上。

下例将一个区域保存到Web服务器上,假定该Web页的URL地址为

WithActiveWorkbook

With.WebOptions

.RelyonVML=True

.PixelsPerInch=96

EndWith

With.PublishObjects

(1)

.FileName=_

"

.Publish

EndWith

EndWith

在MicrosoftExcel中打开HTML文档

要在Excel中编辑HTML文档,请首先使用Open方法打开该文档。

下例打开文件“C:

\Reports\1997_Q4.htm”以便进行编辑。

Workbooks.OpenFilename:

="C:

\Reports\1997_Q4.htm"

打开文件后,就可以通过设置DefaultWebOptions和WebOptions对象的属性自定义该HTML文档的外观、内容、浏览器支持、编辑支持、图象格式、屏幕分辨率、文件组织和编码。

7、用A1样式的记号引用单元格和单元格区域

可在Range方法中以A1样式的记号引用单元格和单元格区域。

下述Sub过程将单元格区域A1:

D5的字体设置为加粗。

SubFormatRange()

Workbooks("Book1").Sheets("Sheet1").Range("A1:

D5")_

.Font.Bold=True

EndSub

下表演示了用于Range方法的一些A1-样式的引用。

引用

含义

Range("A1")

单元格“A1”

Range("A1:

B5")

从单元格“A1”到单元格“B5”的区域

Range("C5:

D9,G9:

H16")

多块的选定区域

Range("A:

A")

“A”列

Range("1:

1")

第一行

Range("A:

C")

从“A”列到“C”列的区域

Range("1:

5")

从第一行到第五行的区域

Range("1:

1,3:

3,8:

8")

第1、3和8行

Range("A:

A,C:

C,F:

F")

“A”列、“C”列和“F”列

8、用编号引用单元格

可用Cells属性及行号和列标引用单个单元格。

该属性返回代表单个单元格的Range对象。

下例中,Cells(6,1)返回工作表“Sheet1”上的单元格“A6”,然后将Value属性设置为10。

SubEnterValue()

Worksheets("Sheet1").Cells(6,1).Value=10

EndSub

因为可用变量代入单元格索引值,所以Cells属性非常适于在单元格区域中循环,如下例所示。

SubCycleThrough()

DimcounterAsInteger

Forcounter=1To20

Worksheets("Sheet1").Cells(counter,3).Value=counter

Nextcounter

EndSub

注意如果要同时对某一区域内的所有单元格修改属性或应用方法,可用Range属性。

有关的详细内容,请参阅“用A1样式的记号引用单元格和单元格区域”。

9、引用行或列

可用Rows属性或Columns属性处理整行或整列。

这两个属性返回代表单元格区域的Range对象。

下例中,用Rows

(1)返回工作表“Sheet1”上的第一行,然后将该行的Font对象的Bold属性设置为True。

SubRowBold()

Worksheets("Sheet1").Rows

(1).Font.Bold=True

EndSub

下表演示了使用Rows属性和Columns属性的一些行和列的引用。

引用

含义

Rows

(1)

第一行

Rows

工作表上所有的行

Columns

(1)

第一列

Columns("A")

第一列

Columns

工作表上所有的列

如果要同时处理若干行或列,可先创建一个对象变量,然后用Union方法把对Rows属性或Columns属性的多个调用组合起来。

下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。

SubSeveralRows()

Worksheets("Sheet1").Activate

DimmyUnionAsRange

SetmyUnion=Union(Rows

(1),Rows(3),Rows(5))

myUnion.Font.Bold=True

EndSub

10、用快捷记号引用单元格

可用方括号将A1样式的引用或命名区域的名称括起来,作为Range属性的快捷方式。

这样就不必键入“Range”和引号,如下述各例所示。

SubClearRange()

Worksheets("Sheet1").[A1:

B5].ClearContents

EndSub

SubSetValue()

[MyRange].Value=30

EndSub

11、引用命名单元格区域

用名称比用A1样式的记号更容易标识单元格区域。

如果要命名选定的单元格区域,单击公式栏左端的名称框,键入名称,然后按ENTER键。

引用命名单元格区域

下例引用了工作簿“MyBook.xls”中的单元格区域“MyRange”。

SubFormatRange()

Range("MyBook.xls!

MyRange").Font.Italic=True

EndSub

下例在工作簿“Report.xls”中引用了特定于工作表的单元格区域“Sheet1!

Sales”。

SubFormatSales()

Range("[Report.xls]Sheet1!

Sales").BorderAroundweight:

=xlthin

EndSub

如果要选定命名的单元格区域,可用GoTo方法,该方法将激活指定区域所在的工作簿和工作表,然后选定该区域。

SubClearRange()

Application.GotoReference:

="MyBook.xls!

MyRange"

Selection.ClearContents

EndSub

下例显示了在活动工作簿中对上述同一过程的写法。

SubClearRange()

Application.GotoReference:

="MyRange"

Selection.ClearContents

EndSub

在命名区域中的单元格上循环

下例用ForEach...Next循环语句在命名区域中的每一个单元格上循环。

如果该区域中的任一单元格的值超过limit的值,就将该单元格的颜色改为黄色。

SubApplyColor()

ConstlimitAsInteger=25

ForEachcInRange("MyRange")

Ifc.Value>limitThen

c.Interior.ColorIndex=27

EndIf

Nextc

EndSub

12、按相对于其他单元格的方式来引用单元格

处理位于相对于其他单元格的某一位置单元格的常用方法是使用Offset属性。

下例中,将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线。

SubUnderline()

ActiveCell.Offset(1,3).Font.Underline=xlDouble

EndSub

注意可用Offset属性而不用绝对引用方式来记录宏。

指向“工具”菜单内的“录制宏”子菜单,然后单击“使用相对引用”命令即可。

如果要在单元格区域中循环,可在循环中将Cells属性和变量共用。

下例用从5到100的值以5为步长填充第三列的前20个单元格。

变量counter用作Cells属性的行号。

SubCycleThrough()

DimcounterAsInteger

Forcounter=1To20

Worksheets("Sheet1").Cells(counter,3).Value=counter*5

Nextcounter

EndSub

13、用Range对象引用单元格

将对象变量设置为Range对象,即可用变量名方便地操纵该单元格区域。

下述过程创建了对象变量myRange,然后将活动工作簿中工作表“Sheet1”上的单元格区域“A1:

D5”赋予该变量。

随后的语句用该变量代替该区域对象,以修改该区域的属性。

SubRandom()

DimmyRangeAsRange

SetmyRange=Worksheets("Sheet1").Range("A1:

D5")

myRange.Formula="=RAND()"

myRange.Font.Bold=True

EndSub

14、引用工作表上的所有单元格

如果对工作表应用Cells属性时不指定索引,该属性将返回代表工作表上所有单元格的Range对象。

下述Sub过程清除活动工作簿中工作表“Sheet1”上的所有单元格的内容。

SubClearSheet()

Worksheets("Sheet1").Cells.ClearContents

EndSub

15、引用若干单元格区域

使用适当的方法可以很容易地同时引用若干单元格区域。

可用Range和Union方法引用任意组合的单元格区域;用Areas属性可引用工作表上选定的一组单元格区域。

使用Range属性

使用Range属性时,在两个或多个引用之间加上逗号,就可以引用多重区域。

下例清除了工作表“Sheet1”上三个单元格区域的内容。

SubClearRanges()

Worksheets("Sheet1").Range("C5:

D9,G9:

H16,B14:

D18")._

ClearContents

EndSub

命名区域使得用Range属性处理多重区域更为容易。

下例可在三个命名区域处于同一工作表时运行。

SubClearNamed()

Range("MyRange,YourRange,HisRange").ClearContents

EndSub

使用Union方法

用Union方法可将多个单元格区域组合到一个Range对象中。

下例创建了名为myMultipleRange的Range对象,并将其定义为单元格区域“A1:

B2”和“C3:

D4”的组合,然后将该组合区域的字体设置为加粗。

SubMultipleRange()

Dimr1,r2,myMultipleRangeAsRange

Setr1=Sheets("Sheet1").Range("A1:

B2")

Setr2=Sheets("Sheet1").Range("C3:

D4")

SetmyMultipleRange=Union(r1,r2)

myMultipleRange.Font.Bold=True

EndSub

使用Areas属性

可用Areas属性引用选定的单个单元格区域或多块的选定区域集合。

下述过程计算选定区域内的块数目,如果选定区域中有多个块,就显示警告消息。

SubFindMultiple()

IfSelection.Areas.Count>1Then

MsgBox"Cannotdothistoamultipleselection."

EndIf

EndSub

16、在单元格区域中循环

使用VisualBasic时,经常需要对某一区域内的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1