Excel高级应用

  • 格式:doc
  • 大小:189.50 KB
  • 文档页数:23

Excel宏的使用

1宏

宏(Macro)是一组VBA语句。可以理解为一个程序段,或一个子程序。在OfficeXP中,宏可以直接编写,也可以通过录制形成。录制宏,实际上就是将一系列操作过程记录下来并由系统自动转换为VBA语句。这是目前最简单的编程方法,也是VBA最有特色的地方。

1.1宏的录制与执行

下面录制一个非常简单的宏,它的功能是将当前选中的单元格背景置成蓝色。如下步骤:

①进入Excel。

②在“工具|宏”菜单中选“录制新宏”项。

③在“录制新宏”对话框中输入宏名“填充颜色”,单击“确定”按钮。此时,屏幕上显示出“停止录制”工具栏。

④在“格式”工具栏中单击“填充颜色”按钮右边的三角标志,选择蓝色。

⑤单击“停止录制”工具栏按钮,结束宏录制过程。也可以选择“工具|宏|停止录制”菜单结束宏录制。录制完一个宏后就可以执行它了。

1.2宏的编辑

对已经存在的宏,我们可以查看代码,也可以进行编辑修改。

选择“工具|宏|宏”菜单,在“宏”对话框中选择列表中的“填充颜色”,单击“编辑”按钮。可以在VBA的编辑器窗口修改宏。

编辑宏同样非常简单。同时我们知道,通过编辑宏可以删除多余的语句,提高运行速度,也可以加入判断或循环等无法录制的语句,增加宏的功能。

许多过程可以用录制宏来完成。但录制的宏无判断或循环能力,人机交互能力差,即用户无法进行输入,计算机无法给出提示,无法显示对话框,无法显示自定义窗体。因此,需要对录制的宏进行编辑修改。

1.3为宏指定快捷键

快捷键即快速执行某项操作的组合键。例如:CTRL+C在许多程序中代表“复制”命令。

当给宏指定了快捷键后,就可以用快捷键来执行宏,而不必通过“工具”菜单。

可以在创建宏时指定快捷键,也可以在创建后再指定。

注意:当包含宏的工作簿打开时,为宏指定快捷键会覆盖原有快捷键的功能。因此,在定义新的快捷键时,尽量避开系统已定义的常用快捷键。

1.4指定宏保存的位置

EXCEL中宏可保存在三种位置:当前工作簿、新工作簿和个人宏工作簿。

将宏保存在当前工作簿或新工作簿,只有该工作簿打开时,相应的宏才可以用。

个人宏工作簿是为宏而设计的一种特殊的具有自动隐藏特性的工作簿。第一次将宏创建到个人宏工作簿时,会创建名为“PERSONAL.XLS"的新文件。如果该文件存在,则每当EXCEL启动时会自动将此文件打开并隐藏在活动工作簿后面。在“窗口”菜单中选择“取消隐藏”后,可以发现它的存在。

WORD中宏可保存在两种位置:当前文档、所有文档(normal.dot)。

normal.dot中的宏在别的文档中也可以运行。

1.5 EXCEL中将宏指定给按钮或图片

VBA主要的目标是为自动化提供一个易于操作的界面。“按钮”是最常见的界面组成元素之一。通过使用“窗体”工具栏,可以为工作簿中的工作表添加按钮。在创建完一个按钮后,可以为它指定宏,然后就可以通过单击按钮来执行宏了。

此后,单击按钮就可以运行该宏。在按钮上右击鼠标,可改变大小或标题。

指定宏到图片十分简单,用“插入|图片”菜单或其他方法在当前工作表放置图片后,右击图片,在快捷菜单中选“指定宏”即可进行设置。

1.6 将宏指定给工具栏按钮

将宏指定给“工具栏按钮”,可按如下步骤进行:

①在Excel中,选择“工具|自定义”菜单,显示“自定义”对话框。

②在“命令”卡中,从“类别”列表框中选择“宏”,从“命令”列表框中将“自定义按钮”拖动到任意一个工具栏上。

③左击该按钮,选择“指定宏”,显示“指定宏”对话框。

④选择需要的宏名并单击“确定”按钮。

⑤单击“关闭”按钮,关闭“自定义”对话框。

2控件与用户窗体

2.1控件(EXCEL)

在Excel工具栏上单击鼠标右键,从快捷菜单中选择“窗体”,显示出“窗体”工具栏,其中有16个控件,9个可放到工作表上。

1.标签:用于表现静态文本。

2.分组框:用于组合其它控件。 3.按钮:用于执行宏命令。

4.复选框:它是一个选择控件,通过单击可以选择和取消选择,可以多项选择。

5.选项按钮:通常几个选项按钮组合在一起使用,在一组中只能选择一个选项按钮。

6.列表框:用于显示多个选项并从中选择。

7.组合框:用于显示多个选项并从中选择。可以选择其中的项目或者输入一个其它值。

8.滚动条:是一种选择控制机制。包括水平滚动条和垂直滚动条。

9.微调控件:是一种数值选择机制,通过单击控件的箭头来选择数值。

要将控件添加到工作表上,可以在“窗体”工具栏中单击需要的控件,此时鼠标变成十字形状,在当前工作表的适当位置按下鼠标左键并拖动鼠标画出一个矩形,这个矩形代表了控件的大小,对大小满意后放开鼠标左键,这样一个控件就添加到工作表上了。

2.2用户窗体

用户窗体。用户窗体可以作为程序的对话框和窗口。向用户窗体添加控件类似于向工作表添加控件。

在VBA编辑器中出现一个名为“UserForm1”的窗体,“控件工具箱”同时出现,在其中有许多已经熟悉的控件,另外还有一些新的控件。

这些新的控件是:

1.切换按钮:该控件如果被选中,那么会保持被按下的状态。如果再次单击它就恢复为没有按下的状态。

2.选项卡条(TabStrip):它是包含多个选项卡的控件。通常用来对相关的信息进行组织或分类。

3.多页:外观类似选项卡条,是包含一页或多页的控件。选项卡条给人相似的外观,而多页控件的各页包含各自不同的控件,有各自不同的布局。如果每一页具有相同布局,则应选择选项卡条,否则应该选择多页。

4.图像控件:它允许向窗体上放置图片。

5.RefEdit:它外观象文本框,通过这个控件可以将用户窗体折叠起来,以便选择单元格区域。

3 对象、属性、方法和事件

同其它任何面向对象的编程语言一样,VBA里也有对象、属性、方法和事件。所谓对象,就是代码和数据的组合。如表、窗体或文本框等都是对象。所谓属性,是指对象的特性,像大小、颜色、状态等。所谓方法指的是对象能执行的动作,例如,清除活动单元格的内容。事件是一个对象可以辨认的动作,并且可以写某些代码针对此动作来做响应。

例如Worksheet 的selectionchange事件和change事件。

Selectionchange事件是在选区发生变化时出发,target返回选择的区域的值。change事件是在单元格内容发生变化的时候触发,target返回变化的内容。

示例:自动签到,自动求和。

自动签到代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) straddr = Target.Address

col_s = Mid(straddr, 2, 1)

row_n = Mid(straddr, 4)

If col_s = "B" And row_n > 1 Then

Target.Value = Format(Now, "yyyy-mm-dd hh:mm:ss")

End If

End Sub

Mid(string, start[, length])

Mid 函数的语法具有下面的命名参数:

说明

string 必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null。

start 必要参数。为 Long。string 中被取出部分的字符的起始位置。如果 start 超过 string

的字符数,Mid 返回零长度字符串 ("")。

length 可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

Format 函数的语法具有下面几个部分:

部分 说明

expression 必要参数。任何有效的表达式。

format 可选参数。有效的命名表达式或用户自定义格式表达式。(#代表任意的多个字符,0代表任意的一个字符)。

firstdayofweek可选参数。常数,表示一星期的第一天。

firstweekofyear 可选参数。常数,表示一年的第一周。

自动求和:在A列和B列输入数值,在C列自动显示和。

代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim addr As String, col_letter As String, row_no As String

Dim sum_addr As String, A_addr As String, B_addr As String, A_val As String

Dim B_val As String

addr = Target.Address '求当前单元格地址

col_letter = Mid(addr, 2, 1) '求地址中列标

row_no = Mid(addr, 4) '求地址中行号

If col_letter = "A" Or col_letter = "B" Then

sum_addr = "C" & row_no

If col_letter = "A" Then

A_val = Target.Value

B_addr = "B" & row_no

B_val = Range(B_addr).Value