范例
当前位置:首页 > 其他范文 > 范例 > 列表页

excel,2007,vba入门与范例精讲

小草范文网  发布于:2016-12-01  分类: 范例 手机版

篇一:ExcelVBA编程入门范例

ExcelVBA编程入门范例

很喜爱VBA,喜欢使用她对Excel操作实现所需的功能,更喜欢使用VBA控制Excel以及实现结果后的那种感觉。

一直都想对ExcelVBA进行系统的整理和归纳,但由于对Excel及VBA了解得不够深入,总觉得无从下手。再加上又是利用少得可怜的业余时间进行学习,时断时续,学习的主线和思路也经常因为工作或其它的事情而打断。但喜欢学习的人总会挤得出时间来的,要想掌握或者是精通一门知识和技术不能有任何借口。幸运的是,有网络这个大平台,更有ExcelHome众多网友的帮助和鼓励,这几个月,总算坚持了下来。对Excel的痴迷没有停留在头脑和心中,而是体现在了具体的行动以及积极的学习和参与上来,因此,收获很大,感觉水平也有明显的提高。

现在,我计划利用点滴的业余时间,将基本的ExcelVBA操作用简短的实例进行演示,编辑成《ExcelVBA编程入门范例》,以此对ExcelVBA基础知识进行一次归纳和整理,从而理清学习ExcelVBA的线条,同时也希望能对热衷于Excel的朋友以及ExcelVBA初学者快速了解和步入ExcelVBA编程殿堂有所帮助。这是我第一次偿试对所学知识进行较大规模的整理,希望大家能多提改进意见和建议,以利于改进和提高,也有助于以后的学习和编写出更好的作品呈献给大家。

主要内容和特点

《ExcelVBA编程入门范例》主要是以一些基础而简短的VBA实例来对ExcelVBA中的常用对象及其属性和方法进行讲解,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件操作、以及常用方法和函数及技巧等方面的应用示例。这些例子都比较基础,很容易理解,因而,很容易调试并得以实现,让您通过具体的实例来熟悉ExcelVBA编程。

■ 分16章共14个专题,以具体实例来对大多数常用的ExcelVBA对象进行讲解;

■ 一般而言,每个实例都很简短,用来说明使用VBA实现Excel某一功能的操作;

■ 各章内容主要是实例,即VBA代码,配以简短的说明,有些例子可能配以必要的图片,以便于理解;

■ 您可以对这些实例进行扩充或组合,以实现您想要的功能或更复杂的操作。

VBE编辑器及VBA代码输入和调试的基本知识

在学习这些实例的过程中,最好自已动手将它们输入到VBE编辑器中调试运行,来查看它们的结果。当然,您可以偷赖,将它们复制/粘贴到代码编辑窗口后,进行调试运行。下面,对VBE编辑器界面进行介绍,并对VBA代码输入和调试的基本知识进行简单的讲解。

激活VBE编辑器

一般可以使用以下三种方式来打开VBE编辑器:

■ 使用工作表菜单“工具——宏——Visual Basic编辑器”命令,如图00-01所示; ■ 在Visual Basic工具栏上,按“Visual Basic编辑器”按钮,如图00-02所示; ■ 按Alt+F11组合键。

图00-01:选择菜单“工具——宏——Visual Basic编辑器”命令来打开VBE编辑

图00-02:选择(转载自:www.xiaocaOfaNWen.com 小草 范 文 网:excel,2007,vba入门与范例精讲)Visual Basic工具栏上的“Visual Basic编辑器”命令按钮来打开VBE编辑器

此外,您也可以使用下面三种方式打开VBE编辑器:

■ 在任一工作表标签上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问该工作表的代码模块,如图00-03所示;

■ 在工作簿窗口左上角的Excel图标上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问活动工作簿的ThisWorkbook代码模块,如图00-04所示;

■ 选择菜单“工具——宏——宏”命令打开宏对话框,若该工作簿中有宏程序,则单击该对话框中的“编辑”按钮即可进行VBE编辑器代码模块,如图00-05所示。

图00-03:右击工作表标签弹出菜单并选择“查看代码”打开VBE编辑器

图00-04:右击Excel图标弹出菜单并选择“查看代码”打开VBE编辑器

图00-05:在宏对话框中单击“编辑”按钮打开VBE编辑器

VBE编辑器窗口简介

刚打开VBE编辑器时,所显示的窗口如图00-06所示,其中没有代码模块窗口。

图00-06:刚打开VBE编辑器时的窗口

可以在“工程资源管理器”中双击任一对象打开代码窗口,或者选择菜单“插入——模块”或“插入——类模块”来打开代码窗口。一般VBE编辑器窗口及各组成部件名称如图00-07所示,可以通过“视图”菜单中的菜单项选择所出现的窗口。同时,可以在“工程属性”窗口中设置或修改相应对象的属性。

图00-07:VBE编辑器窗口

下面是带有用户窗体的VBE编辑器窗口,如图00-08所示。选择VBE菜单“插入——用户窗体”,即可插入一个用户窗体。当插入用户窗体后,在“工程资源管

篇二:ExcelVBA编实战编程(很实用哦)

ExcelVBA编程实例(150例) 主要内容和特点

《ExcelVBA编程入门范例》主要是以一些基础而简短的VBA实例来对ExcelVBA中的常用对象及其属性和方法进行讲解,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件操作、以及常用方法和函数及技巧等方面的应用示例。这些例子都比较基础,很容易理解,因而,很容易调试并得以实现,让您通过具体的实例来熟悉ExcelVBA编程。

■ 分16章共14个专题,以具体实例来对大多数常用的ExcelVBA对象进行讲解;

■ 一般而言,每个实例都很简短,用来说明使用VBA实现Excel某一功能的操作;

■ 各章内容主要是实例,即VBA代码,配以简短的说明,有些例子可能配以必要的图片,以便于理解;

■ 您可以对这些实例进行扩充或组合,以实现您想要的功能或更复杂的操作。

VBE编辑器及VBA代码输入和调试的基本知识

在学习这些实例的过程中,最好自已动手将它们输入到VBE编辑器中调试运行,来查看它们的结果。当然,您可以偷赖,将它们复制/粘贴到代码编辑窗口后,进行调试运行。下面,对VBE编辑器界面进行介绍,并对VBA代码输入和调试的基本知识进行简单的讲解。

激活VBE编辑器

一般可以使用以下三种方式来打开VBE编辑器:

■ 使用工作表菜单“工具——宏——Visual Basic编辑器”命令,如图00-01所示; ■ 在Visual Basic工具栏上,按“Visual Basic编辑器”按钮,如图00-02所示; ■ 按Alt+F11组合键。

图00-01:选择菜单“工具——宏——Visual Basic编辑器”命令来打开VBE编辑

图00-02:选择Visual Basic工具栏上的“Visual Basic编辑器”命令按钮来打开VBE编辑器

此外,您也可以使用下面三种方式打开VBE编辑器:

■ 在任一工作表标签上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问该工作表的代码模块,如图00-03所示;

■ 在工作簿窗口左上角的Excel图标上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入VBE编辑器访问活动工作簿的ThisWorkbook代码模块,如图00-04所示;

■ 选择菜单“工具——宏——宏”命令打开宏对话框,若该工作簿中有宏程序,则单击该对话框中的“编辑”按钮即可进行VBE编辑器代码模块,如图00-05所示。

图00-03:右击工作表标签弹出菜单并选择“查看代码”打开VBE编辑器

图00-04:右击Excel图标弹出菜单并选择“查看代码”打开VBE编辑器

图00-05:在宏对话框中单击“编辑”按钮打开VBE编辑器

VBE编辑器窗口简介

刚打开VBE编辑器时,所显示的窗口如图00-06所示,其中没有代码模块窗口。

图00-06:刚打开VBE编辑器时的窗口

可以在“工程资源管理器”中双击任一对象打开代码窗口,或者选择菜单“插入——模块”或“插入——类模块”来打开代码窗口。一般VBE编辑器窗口及各组成部件名称如图00-07所示,可以通过“视图”菜单中的菜单项选择所出现的窗口。同时,可以在“工程属性”窗口中设置或修改相应对象的属性。

图00-07:VBE编辑器窗口

下面是带有用户窗体的VBE编辑器窗口,如图00-08所示。选择VBE菜单“插入——用户窗体”,即可插入一个用户窗体。当插入用户窗体后,在“工程资源管

篇三:VBA程序设计(实例精讲)

第2章VBA程序设计

2.1工作簿和工作表

一、创建和打开工作簿

Workbooks.Add创建一个新的工作簿

SetNewBook=Workbooks.Add建工作簿,用对象变量表示 NewBook.SaveAsFilename:="Test.xls"工作簿另存为 Workbooks.Open("D:\Test.xls")打开工作簿

二、引用工作表

Worksheets(1).Activate激活第一张工作表 Sheets(4).Activate激活四张工作表

Worksheets("Sheet1").Activate激活指定的工作表 Sheets("Chart1").Activate激活图表“Chart1”

2.2单元格和区域

一、引用单元格和区域

1.用A1样式记号引用单元格和单元格区域

表2.1使用Range属性的A1样式引用示例

Sheets("Sheet1").Range("A1:D5").Font.Bold=True

【例2.6】将工作表“Sheet1”中单元格区域A1:D5的字体设置为加粗。

2.用编号引用单元格

【例2.7】将Sheet1上的单元格A6的Value属性设置为10 Worksheets("Sheet1").Cells(6,1).Value=10

【例2.9】清除活动工作簿中Sheet1上的所有单元格的内容

Worksheets("Sheet1").Cells.ClearContents

【例2.10】假设工作簿中Sheet1的A列是员工姓名(不超过50人),Sheet2的A列是员工姓名、B列是对应的电话号码。现在需将所有员工的电话号码填写到Sheet1中的B列(注:Sheet1中姓名“李三”在Sheet2中可能为“李三”,中间没有空格)。

3.引用行和列

【例2.11】将Sheet1上第一行单元格区域的Font对象Bold属性设置为True。 Worksheets("Sheet1").Rows(1).Font.Bold=True

表2.2Rows和Columns属性的应用示例

【例2.12】将活动工作表上的第一行、第三行和第五行的字体设置为加粗。 SetmyUn=Union(Rows(1),Rows(3),Rows(5)) myUn.Font.Bold=True

4.用快捷记号引用单元格

【例2.13】将工作表“Sheet1”的单元格区域“A1:B5”内容清除。 Worksheets("Sheet1").[A1:B5].ClearContents

5.引用命名区域

【例2.14】将当前工作表中名为“AA”的单元格区域设置为30。

[AA].Value=30

【例2.15】用GoTo方法激活工作簿“Book1.xls”,选定区域“AA”,然后清除该区域内容。 Application.GotoReference:="Book1.xls!AA" Selection.ClearContents

【例2.16】用ForEach...Next循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过25,就将该单元格的颜色更改为黄色。 ForEachcInRange("AA") Ifc.Value>25Then

c.Interior.ColorIndex=27 EndIf Nextc

6.相对于其他单元格来引用单元格

【例2.17】将位于活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。 ActiveCell.Offset(1,3).Font.Underline=xlDouble

7.用Range对象引用单元格

【例2.18】将Sheet1上的单元格区域A1:D5赋予该变量,随后用该变量代替该区域对象,填充随机函数。

SetmyRange=Worksheets("Sheet1").Range("A1:D5") myRange.Formula="=RAND()"

8.引用多个单元格区域

【例2.19】清除当前工作表上三个区域的内容。 Range("C5:D9,G9:H16,B14:D18").ClearContents

Range("MyRange,YourRange,HisRange").ClearContents 【例2.20】将组合区域的字体设置为加粗。 Setr1=Sheets("Sheet1").Range("A1:B2") Setr2=Sheets("Sheet1").Range("C3:D4") SetmyMR=Union(r1,r2) myMR.Font.Bold=True

【例2.21】计算选定区域中的数目,如果有多个区域,就显示一则警告消息。 IfSelection.Areas.Count>1Then MsgBox"请不要选择多个区域!" EndIf

二、在单元格区域中循环

【例2.22】将单元格区域C1:C20所有绝对值小于10的数字都设置红色。 ForCnt=1To20

SetcurC=Worksheets("Sheet1").Cells(Cnt,3) IfAbs(curC.Value)<10Then curC.Font.ColorIndex=3 NextCnt

求区域末尾行号常用的方法:

r=Range("A1").End(xlDown).Row'求A1单元格数据区末尾行号 r=Cells(1,1).End(xlDown).Row'求A1单元格数据区末尾行号 r=Range("A65536").End(xlUp).Row'求A列数据区末尾行号 r=Cells(65536,1).End(xlUp).Row'求A列数据区末尾行号 r=Columns(1).End(xlDown).Row'求A列数据区末尾行号

求区域末尾列号常用的方法:

c=Range("A1").End(xlToRight).Column'求A1单元格数据区末尾列号 c=Cells(1,1).End(xlToRight).Column'求A1单元格数据区末尾列号 c=Cells(1,256).End(xlToLeft).Column'求第1行数据区末尾列号 c=Rows(1).End(xlToRight).Column'求第1行数据区末尾列号

【例2.23】将单元格区域A1:D10所有绝对值小于10的数字都设置为红色。 ForEachcInWorksheets("Sheet1").Range("A1:D10").Cells IfAbs(c.Value)<10Then c.Font.ColorIndex=3 Next

【例2.24】将活动单元格区域所有绝对值小于10的数字都设置为红色。 ForEachcInActiveCell.CurrentRegion.Cells IfAbs(c.Value)<10Then c.Font.ColorIndex=3 Next

三、选定和激活单元格

1.使用Select方法和Selection属性

【例2.25】将A1:B1单元格中的内容加粗。 Range("A1:B1").Select Selection.Font.Bold=True 也可以用下面语句: Range("A1:B1").Font.Bold=True

2.选定活动工作表上的单元格

【例2.26】将Sheet1中的一行复制到Sheet2上。 Worksheets("Sheet1").Rows(1).Copy Worksheets("Sheet2").Select

Worksheets("Sheet2").Rows(1).Select Worksheets("Sheet2").Paste

3.激活选定区域内的单元格

【例2.27】选定一个区域,激活区域内的一个单元格,但并不改变选定区域。 Range("A1:D4").Select Range("B2").Activate

四、处理三维区域

【例2.28】设置三维单元格区域的边框格式。 Sheets(Array("Sheet2","Sheet3","Sheet5")).Select Range("A1:H1").Select

Selection.Borders(xlBottom).LineStyle=xlDouble

【例2.29】用FillAcrossSheets方法将Sheet2上指定区域的格式和内容复制到该工作簿中所有工作表上的相应区域中。

Worksheets.FillAcrossSheets(Worksheets("Sheet2").Range("A1:H1"))

五、处理活动单元格

【例2.30】使单元格B5成为活动单元格,然后将其字体设置为加粗。 Worksheets("Sheet1").Range("B5").Activate ActiveCell.Font.Bold=True

【例2.31】在选定区域内的活动单元格中插入文本,然后将活动单元格右移一格,但并不更改选定区域。 Range("A1:D10").Select ActiveCell.Value="姓名" ActiveCell.Offset(0,1).Activate

【例2.32】将选定区域扩充到与活动单元格相邻的包含数据的单元格中。 ActiveCell.CurrentRegion.Select

其中,CurrentRegion属性返回由空白行和空白列所包围的单元格区域。

范例2-1从区域中删除重复的内容

在Excel当前工作表B列存放一些数据,现要列出这些数据互不重复的值,

放到D列。

①建函数UnqV

②编写子程序nodupa

范例2-2在Excel工作表列出指定文件夹中所有文件的目录信息。

①进入VBE,在“工具”菜单中选择“引用”项,在“引用”对话框中选中“MicrosoftScriptingRuntime”项。 ②建立子程序“列文件目录”

范例2-3自动生成年历

子程序GenerateCalendar(分析)

2.3工作表函数与图形

一、在VBA中使用Excel工作表函数 1.在VBA中调用工作表函数

【例2.33】使用Min工作表函数求出区域中的最小值。 SetmyR=Worksheets("Sheet1").Range("A1:C10") answer=Application.WorksheetFunction.Min(myR) MsgBoxanswer

注意:VBA函数和Excel工作表函数可能同名,但作用和引用方式是不同的。

2.在单元格中插入工作表函数

【例2.34】将RAND(随机数)工作表函数赋给Sheet1上A1:B3区域的Formula属性。 Worksheets("Sheet1").Range("A1:B3").Formula="=RAND()"

【例2.35】下面程序使用工作表函数Pmt来计算住宅抵押贷款的支付额。 SubFml()

StaticlAmt,lInt,lTrm

lAmt=Application.InputBox(Prompt:="贷款额:", Default:=lAmt,Type:=1) lInt=Application.InputBox(Prompt:="年利率:",Default:=lInt,Type:=1) lTrm=Application.InputBox(Prompt:="年限:",Default:=lTrm,Type:=1) lPmt=Application.WorksheetFunction.Pmt(lInt/1200,lTrm*12,lAmt) MsgBox"月支付额:"&Format(lPmt,"Currency") EndSub

二、处理图形对象 1.设置图形的属性

【例2.36】设置指定图形的前景色。

Worksheets(1).Shapes(1).Fill.ForeColor.RGB=RGB(255,0,0)

2.同时对多个图形应用属性或方法

对多个选定图形通过构造ShapeRange集合,并直接对该ShapeRange集合应用适当的属性和方法,可执行同一操作。

本文已影响