




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、选中单个单元格Range( “ “).Select例:Range(C9).Select选中“ C9单元格二、选中多个单元格Range( “:,” ).Select例:Range( “A1:B2 ”).Select选中“ A1”、“ A2、“ B1”、“ B2”四个连续的单元格Range( “ 12:12 ”).Select选中第12行Range( “B:B ”).Select选中第B列Range( “A1:A2,B7,2:2 ”).Select选中“ A1”、“ A2、“ B7五个不连续的单元格和第二行Cells.Select选中当前SHEET中的所有单元格Rows(v行地址 :).Sel
2、ect选中整行Columns(:).Select选中整列例:Rows( “2:2 ”). Select选中第2行Rows( “2:5 ” ). Select选中2到5行Columns(A:A).Select选中A列Columns(E:B).Select选中E到B列三、设置活动单元格Range().Activate注:设置活动单元格与选中单元格类似,不同之处就是后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。前者在设置之前不会取消已选中的单元格,如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同四、给活动的单元格赋值ActiveCell.FormulaRICI
3、 = 例:Range(A1).SelectActiveCell.FormulaRICI = NameRange(B1).SelectRange(A2:B3).SelectRange(A2).ActivateActiveCell.FormulaRICI = BUGRange(B2).ActivateActiveCell.FormulaR1C1 = 12Range(A3).ActivateActiveCell.FormulaR1C1 = ArcherRange(B3).ActivateActiveCell.FormulaR1C1 = 37五、得到指定单元格中的值Range().Text六、插入单元
4、格Selectio nn sert Shift:=Selection.EntireRown sertSelection.EntireColumn.lnsert例:Selection.Insert Shift:=xlToRight在当前选中单元格的位置插入单元格并将当前选中的单元格向右移动Selectio nn sert Shift:=xlDown在当前选中单元格的位置插入单元格并将当前选中的单元格向下移动在当前选中单元格的上面插入一行Selection.EntireColumn.lnsert在当前选中单元格的左侧插入一列Selection.EntireRown sert七、设置字体属性1. 设
5、置字体名称和大小Selection.Font.Name = Selection.Font.Size = 例:Selection.Font.Name = 隶书Selection.Font.Size = 152.设置字体样式Selection.Font.Italic = 斜体Selection.Font.Underline = 下划线XIUnderlineStyle(下划线样式):xlUnderlineStyleDouble双下划线xlUnderlineStyleDoubleAccounting会计用双下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)xlUnderlineS
6、tyleNone没有下划线xlUnderlineStyleSingle单下划线xlUnderlineStyleSingleAccounting会计用单下划线(如果当前单元格中的数据是数字时则下划线的宽度是当前单元格的宽度)3. 设置字体的颜色Selection.Font.Colorlndex = Selection.Font.Color = vRGB 值 4. 设置字体的特殊效果Selection.Font.Strikethrough = 删除线Selection.Font.Superscript = 上标Selection.Font.Subscript = 下标八、清空选中单元格里的内容Se
7、lection.ClearContents例:Range( “A1:A2,B7,2:2 ” ).Select选中“ A1”、“ A2、“ B7”五个不连续的单元格和第二行Selection.ClearContents清空“ A1”、“ A2、“ B7五个不连续单元格中的所有内容九、设置选中单元格的边线属性XIBorderslndex(边线):xlEdgeLeft单元格左边线xlEdgeTop单元格上边线xlEdgeRight单元格右边线xIEdgeBottom单元格下边线xlDiagonalDown单元格左上右下斜线xllnsideVertical多个单元格内垂直线xllnsideHorizo
8、ntal多个单元格内水平线1.设置边线的类型Selection.Borders().LineStyle = XILineStyle(边线类型):xILineStyleNone无样式xlContinuous单线xlDash破折号线(间隔线)xlDashDot破折号点线xlDashDotDot破折号点点线xlDot 点线xlDouble双横线xISIantDashDot斜点线2. 设置边线的宽度SeIection.Borders().Weight = XIBorderWeight(宽度值):xlHairline极细xlThin细xlMedium 中等xlThick粗3. 设置边线的颜色Select
9、ion.Borders(xlEdgeLeft).Colorlndex = Selection.Borders(xlEdgeLeft).Color = 十、删除选中的单元格Selection.Delete Selection.EntireRow.Delete例:Selection.Delete Shift:=xlToLeft删除选中的单元格,并将已删除单元格所在位置右面的单元格向左移动Selection.Delete Shift:=xlUp删除选中的单元格,并将已删除单元格所在位置下面的单元格向上移动Selection.EntireRow.Delete删除选中单元格所在的行Selection.E
10、ntireColumn.Delete删除选中单元格所在的列十一、设置单元格背景色及图案1.背景色Selectio nn terior.Colorlndex = 0到56之间的数字Selection.lnterior.Color = RGB2.图案样式Selectio nn terior.Pattern = Constants(图案样式)Constants(图案样式):xlSolid实心xlGray7575%灰色xlGray5050%灰色xlGray2525%灰色xlGray16 12.5% 灰色xlGray86.25%灰色xlHorizontal水平条纹xlVertical垂直条纹xlDown
11、逆对角线条纹xlUp 对角线条纹xlChecker 对角线剖面线 xlSemiGray75 粗对角线剖面线 xILightHorizontal细水平条纹xILightVertical细垂直条纹xlLightDown细逆对角线条纹xIGrid 细水平剖面线xlCrissCross 细对角线剖面线3.图案颜色Selection.lnterior.PatternColorlndex = Selection.lnterior.PatternColor = 十二、返回工作表中的行数Sheet1.UsedRange.Rows.Count返回从最小已输入内容的行号到最大已输入内容的行号之间的行数Sheet1
12、.UsedRange.Rows(Sheet1.UsedRange.Rows.Count).Row最大已输入内容的行号十三、得到当前EXCEL的文件名ThisWorkbook.Path文件路径ThisWorkbook.Name文件名ThisWorkbook.FullName全路径十四、批注的操作1. 添加批注AddComment(Content)例:Range(A1).AddComment (Writes the content in here!)2. 修改批注内容Comment.Text例:Range(B1).Comment.Text Text:= Writes the content in
13、here!3. 显示/隐藏批注Comment.Visible = 4. 删除批注ClearComments例:Selection.Range(B1).CIearComments5. 选中批注Comment.Shape.Select True6.改变批注大小和位置每次增加5%勺宽度每次减少6%勺宽度Selection.ShapeRange.ScaleWidth ,msoFalse, Selection.ShapeRange.ScaleHeight ,msoFalse, 例: Selection.ShapeRange.ScaleWidth 1.5, msoFalse, msoScaleFromTo
14、pLeft Selection.ShapeRange.ScaleHeight 0.6, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.Left = Selection.ShapeRange.Top = Selection.ShapeRange.Width = Selection.ShapeRange.Height = 十五、剪切、复制、粘贴Selection.Cut剪切Selection.Copy复制ActiveSheet.Paste粘贴例:Range(A1).SelectSelection.CutRange(A2).SelectActi
15、veSheet.PasteSelection.CopyRange(A3).SelectActiveSheet.Paste十六、选择性粘贴Selection.PasteSpecial 十七、改变列宽Selection.ColumnWidth = 指定列宽例:Columns(A:A).Select例:Columns(C:C).EntireColumn.AutoFit根据C列的内容自动改变列的宽度对于什么是宏有许多种解释,总的来说宏是使任务自动化包括在 Sub和End Sub之间的一组指令的集合,Excel97的宏就是贮存在Visual Basic模块中的VBA程序。只有充分使用宏,才能深入理解 E
16、xcel97数据管理各个方面的精妙之处。在 Excel97应用中怎样使用宏呢?根据 平常实际应用经验,我从以下三个方面谈一点心得。一、建立宏直接建立宏有两种途径:使用Excel97提供的宏记录器建立宏运用宏记录器记录宏基本可分为三个步骤,第一步:启动宏记录器。从Excel97工具菜单中选取“宏”,然后选中“录制新宏”选项,从弹出的“录制新宏”窗口中,用户可以为即将录制的宏定义一个便于识别的名字和快捷键,并确定宏的保存地址,其中宏名为必选项,若 用户未定义宏名,宏记录器将自动为所录制的宏定义一个默认的名字,快捷键和保存地址由用户根据需要自由设定,宏记录器默认用户所录 制的宏保存在当前工作簿。第二
17、步:执行希望录制的动作。这是使用宏记录器建立宏的关键,因为在这个步骤中,用户每一个完成的动作都 将被宏记录器所录制,所以,为了使宏达到简捷、实用的目的,用户的动作一定要精炼、准确,尽可能地用最少的动作完成预定的任务。第 三步:停止记录。Excel97的宏记录器具有一定的智能判断能力,只记录已完成的动作,不会记录用户选择错误或修改错误的过程。例如,它不会记录 打开对话框的菜单命令,直到单击了对话框上的“确定”为止,若用户打开对话框后选择了“取消”,宏记录器则不会录制该动作。在录制 宏的过程中,用户不能离开Excel97的工作环境,否则,用户的动作将不能被记录。举一个简单的例子:在 Excel97
18、中打开一个名为“通讯录.dbf ”的数据库文件,运用宏记录器建立一个名为“打开数据库”的宏,具 体操作为:1. 进入Excel97,新建一个工作簿;2. 将工作簿命名为“打印通讯录”(若准备在工作簿中使用宏应养成为新建工作簿命名的操作习惯);3. 启动宏记录器,并定义宏名为“打开数据库”;4. 运用Excel97的打开文件向导打开数据库文件“通讯录.dbf ”;5. 在工具菜单的“宏”选项下选择“停止记录”,或单击“停止录制”按钮。通过上面的操作并稍加调整得到的宏代码为:Sub打开数据库()Workbooks.Open FileName:= 通讯录.dbfEnd Sub在文件名前可以包含详细路
19、径,这是由打开文件时选择路径的动作所决定的。使用Visual Basic 编辑器建立宏Excel97的Visual Basic编辑器的功能十分强大,它不仅可以建立宏,还可以建立用户自定义函数、用户自定义窗体和过程。从工具 菜单的“宏”选项下选择“ Visual Basic编辑器”即可进入编辑窗口,在通过编辑器建立宏的过程中,可以使用拷贝、复制、粘贴、删除、插入、查找、替换、缩进、凸出等所有的文本编辑功能,同时编辑器还提供了自动语法检测和提示功能,所以,即使从未涉及宏语言VisualBasic for Application的用户,也能够在很短的时间内掌握并熟练使用Visual Basic 编辑
20、器。使用Visual Basic编辑器建立宏基本也可以分为三个步骤,即插入模块、编写宏代码、关闭编辑器并返回Excel97。例如,要将打开的数据库文件“通讯录.dbf ”中的记录运用表格的方式打印出来,建立一个名为“打印通讯录”的宏,可以分为以下步骤:1. 根据数据库的字段建立打印页面。在本例中数据库文件“通讯录.dbf ”有六个字段:序号、联系人、联系地址、联系电话、邮政编码、备注,其中序号是第一个字段,也是数据库记录的唯一标识,数据库记录按序号值进行升序排列,文件打开后,序号值存放在Excel97工作表的第A列中。2. 将打印页面工作表命名为“通讯录打印页面”,并根据页面大小确定每页打印的
21、记录数量(在此设为30)。3. 分析宏运行过程中应注意的要点。在此例中首先应判断数据记录的个数,以确定需要打印的页数;其次,在打印之前应选择对应的 数据填入打印页面;第三,在连续打印的过程中程序应给予适当的提示,允许用户整理打印机或中途退出打印过程。4. 进入Visual Basic编辑器,插入模块,编写宏代码。在编写宏代码的过程中可以在代码中加注,以增加宏代码的可读性。根据以上 分析,完成通讯录打印过程的宏代码如下:Sub打印通讯录()Dim Value, no1, no2,页数 As IntegerDim sss, sss1, sss2, sss3 As StringDim qqq As
22、RangeWindows( 通讯录 .dbf).Activate计算A列中值大于0的单元格个数,即记录个数no1 = 2 在 通讯录 .dbf 中第一行为字段标题,计数从第二行开始Do While no1 0 sss = a & no1 Value = Range(sss) If Value 0 Then no1 = no1 + 1 Else Exit Do End IfLoopsss = Str(no1 - 2)no1的初始值为2,故no1-2为数据库的记录数 记录数除以每页的记录容量即页数If (no1 - 2) / 30 = Int(no1 - 2) / 30) Then页数 = (no
23、1 - 2) / 30Else页数 = Int(no1 - 2) / 30) + 1End Ifsss1 = Str( 页数 )no2 = 1Do While no2 0Windows( 通讯录 .dbf).Activate 由于数据库有 6 个字段,故第 1 列至第 6 列为数据区域Set qqq = Range(Cells(no2 - 1) * 30 + 2, 1), Cells(no2 * 30 + 1, 6)qqq.CopyWindows( 打印通讯录 .xls).ActivateSheets( 通讯录打印页面 ).SelectRange(A4).Select 选定打印页面数据区域的左
24、上角 将相应数据选择性粘贴到打印页面中Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=Falsesss2 = Str(no2)sss3 = 数据库中共有 + sss + 条记录,共 + sss1 + 页,目前表中为第 + sss2 + 页数据,打印吗? www = MsgBox(sss3, 68, 提示 ) 当从提示框中选择“否”时用户可中途退出打印过程If www = vbNo Then Exit DoElseActiveWindow.SelectedShe
25、ets.PrintOut From:=1, To:=1, _ Copies:=1, Collate:=TrueEnd Ifno2 = no2 + 1Loop程序执行结果如图所示。实际上任何文本编辑软件都可以编写宏代码,只是必须将所编写的宏代码粘贴到Excel97的宏模块中才能运行。以上两种建立宏的方法各有优劣,使用宏记录器建立宏简单、方便,所见即所得,可以省略输入宏代码的过程,基本不用了解宏语言 的语法和结构,但不够灵活,不够简捷,所以,运用范围受到限制;使用编辑器建立宏则对用户层次要求较高,要求用户能够熟练使用宏语 言Visual Basic for Application,运用这种方法建立
26、宏不仅可以处理复杂的运算过程,同时可以极大地发挥Excel97的各项功能。因此,在实际应用中,应将两种方式结合运用,发挥其各自的长处,才能做到事半功倍。二、优化宏宏建立以后需要经过调试和优化方可运用。宏的调试主要是找岀语法上的缺陷,在建立宏的同时可以一并完成,而优化则需要相当长的过程,甚至在程序已经投入使用后还需要不断优化。宏的优化大致可从以下几个方面着手:消除冗余,提高宏代码的运行效率。消除冗余是所有程序开发人员应该遵循的一般准则。针对Excel97应用而言,建立宏应充分运用Excel97本身强大的数据处理功能,将某些数据计算的工作交给工作表或单元格去完成,这样可以在很大程度上减少宏代码的数
27、量,缩短程序的开发周期。另外,在处理相同任 务的时候,Excel97本身的公式或函数的计算速度也远远高于宏代码的执行速度,这一点在用户所开发的程序很大或计算机的运算速度较低 时尤为明显。最大限度地提高宏代码的执行速度。Excel97本身没有提高宏代码执行速度的命令,根据笔者的实践体会,要提高宏代码的执行速度大致可从三个方面考虑:1. 消除屏幕闪烁现象。在宏的执行过程中,特别是宏在不同工作簿或工作表之间反复调用数据的时候,会岀现屏幕闪烁的现象。如上例“打印通讯录”宏在 “通讯录.dbf ”和“打印通讯录.xls ”之间来回切换,屏幕的闪烁大大影响了宏代码的执行速度。在编写宏代码的时候,加入关闭屏
28、幕更新 命令,可以有效地防止屏幕闪烁。例如我们可将“打印通讯录”宏作如下修改:Sub打印通讯录()Application.ScreenUpdating = FalseApplication.ScreenUpdating = TrueEnd Sub这样将看不到宏的执行过程,但宏的执行速度加快了。值得注意的是:Excel97对屏幕更新的默认值是 True,所以在宏执行结束时需要恢复屏幕更新的默认设置。另外,在同一工作表中的不同区域进行数据处理时也会岀现屏幕闪烁现象,这时只需从窗口菜单中选择“冻结拆分窗口”,通 过调整行高和列宽将拆分窗口大小调整为计算机屏幕大小后,在执行宏的过程中即可消除屏幕闪烁现
29、象。2. 尽量少占用计算机内存。首先,在程序中应少使用剪贴板,因为在剪贴板上放置数据会大量占用计算机的内存,从而降低机器的性能,影响代码的执行速度。第二,在编写宏代码时应养成事先声明变量的习惯。因为,在程序中使用变量而不事先声明,Excel97会默认变量类型为 Variant ,Variant是一种特殊的数据类型,除了定长String数据及用户定义类型外,可以包含任何种类的数据,但是它所占用的内存空间也远远高于其他数据类型。如在“打印通讯录”宏中声明变量的语句为:Dim Value, no1, no2, 页数 As IntegerDim sss, sss1, sss2, sss3 As Str
30、ing以上两个语句共声明八个变量,较之不声明变量节省内存空间104个字节,在程序较小、使用变量较少时,这种方法对执行速度的影响并不明显,但若程序很大、使用变量很多、计算机的运算速度较低时,使用这种方法对提高程序的执行速度则是非常有效的。第三,在程序中要谨慎运用数组。为了尽可能使代码简洁明了,应将声明的数组指定为某一种数据类型。数组变量的最大值, 是以操作系统与有多少可用内存为基础的,若使用的数组大小超过了系统中可用内存总数,则必须从磁盘中来回读写数据,从而使宏的运行 速度变得很慢。第四,对使用Load语句调入内存的 VBA对象,当确定在后面的程序中已不再使用时,应及时使用Unload语句将这个
31、对象从内存中删除,以释放内存空间。3. 简化VBA语句的结构。由于任何一个属性、方法或层次对象的引用都需要Excel97花费一定的时间来处理,因此在对属性、方法或层次对象的引用要力求简化。例如可以将“打开数据库”宏的语句改写为:Application.Workbooks.Open FileName:= 通讯录.dbf虽然这种写法同样可以运行,但与原来写法比较增加了VBA对象的引用层次,从而增加了程序的处理时间,从理论上来说降低了程序的执行速度。将宏的执行动作模块化。VBA面向对象编程的特点使宏的模块化变得尤为方便。所谓模块化就是将宏分解为若干互相独立的宏子程序,每个子程序只包含一个或几个完整的
32、执行动作。由于Excel97的宏可以互相嵌套,在一个宏中调用其他的宏子程序只需在宏中嵌入宏子程序的名字即可,因此,可以将一些较小的宏连在一起创建一个较大的宏,以完成相对复杂的任务。在宏的嵌套中必须注意:一定要明确指定各个宏子程序的作用范围,即必须说明宏子程序作用的工作簿的工作表或工作表中的数据区域,否则将会岀现数据紊乱导致臆想不到的后果。将宏的执行动作模块化具有很多优点,第一,便于宏代码的编写、调试、修改和维护;第二,程序完成后并不是一成不变的,要求随着业务的变化而不断的完善和升级。模块化增加了程序代码的可读性,便于应用程序的完善和升级。第三,完成性质相同任务的宏可以作为 公共子程序被反复多次
33、调用,从而降低冗余。另外,有经验的程序开发人员往往积累一些带有共性的小工具,在开发新的应用程序时可以直 接使用,进行拼装,既省时又省力,可提高程序的开发效率。例如可以将“打印通讯录”宏中的打印过程独立岀来,变成如下的宏子程序:Sub打印()ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=TrueEnd Sub宏子程序“打印”执行的动作是打印工作表的第一页,可以在任何执行相同动作的打印宏中予以调用。三、运行宏建立宏和优化宏两个步骤都是为运行宏所做的准备工作,使用宏的最终目的是要通过运行宏来实现的。运
34、行宏的方式一般分为以下四种:使用宏对话框运行宏使用宏对话框运行宏可分为三个步骤:1. 从工具菜单的宏选项中选择“宏”弹出如图所示的宏对话框;2. 从宏名列表中选择需要运行的宏;3. 用鼠标左键单击“执行”按钮。这是运行宏最普通的方式,具有简单、直观、易于掌握的优点。通过自定义的快捷键运行宏“选宏的快捷键可以通过两种方式定义,一是在运用宏记录器建立宏时从录制宏对话框中定义;二是从上图所示宏对话中选择项”后定义。快捷键定义后,运行宏的时候需要同时按下Ctrl和所定义的快捷键。这是运行宏最直接的方式。通过载体运行宏所谓载体就是能够被指定宏的 Excel97对象。一般而言,可以充当载体的对象有:工作簿
35、、工作表、工具栏按钮、图表、图片、文本 框、艺术字以及各项窗体控件。1. 运用工作簿和工作表作为宏的载体。工作簿和工作表作为宏的载体时,并不能直接为其指定宏,需要通过事件的触发来运行宏。在此仅以工作表为例,如将宏“打印通讯 录”指定给工作表“通讯录打印页面”,可以通过激活工作表事件来实现。代码如下:Private Sub Worksheet_Activate()打印通讯录End Sub要运行“打印通讯录”宏只需激活工作表“通讯录打印页面”即可。这样的工作表事件共有七个,除了以上激活工作表事件外,还有:BeforeDoubleClick 事件(双击工作表产生的事件);BeforeRightCli
36、ck 事件(鼠标右键单击工作表时产生的事件);Deactivate 事件(工作表从活动状态转为非活动状态时产生的事件);Calculate 事件(当数据源更新,图表重新绘制之后产生的事件);Change事件(当更改工作表中的单元格或外部链接引起单元格的值改变时产生的事件);SelectionChange 事件(工作表上的选定区域发生改变时产生的事件)。每个事件都有其特定的触发条件,这样就为宏的灵活运用提供了多种有效途径。2. 运用自定义工具栏按钮作为宏的载体。运用自定义工具栏按钮作为宏的载体,可通过以下步骤来实现: 将鼠标指针指向任何显示的工具栏,单击右键,在岀现的快捷菜单中选择“自定义”选项
37、,弹岀自定义窗口; 从自定义窗口中选择“命令”页面; 在命令页面的“类别”列表中选择“宏”,将“命令”列表中岀现的自定义按钮拖曳到工具栏上; 用鼠标右键单击工具栏上的自定义按钮,从弹岀的“指定宏”窗口列表中选择宏,最后单击“确定”按钮。 若要运行该宏单击工具栏上的自定义按钮即可。3. 运用图表、图片、文本框、艺术字等绘图对象作为宏的载体。建立绘图对象有两种方法,一是从 Excel97插入菜单中插入图表、图片或艺术字,二是从视图菜单中打开绘图、图表、图片或 艺术字工具栏,然后通过工具栏建立绘图对象。将宏指定给绘图对象的操作过程如下: 选中的绘图对象; 用鼠标右键单击选中的绘图对象,从快捷菜单中选
38、择“指定宏”选项; 从弹出的“指定宏”窗口列表中选择宏后单击“确定”按钮。从此,每当鼠标左键单击该对象时都会运行指定的宏。4. 运用窗体控件作为宏的载体。灵活地运用窗体控件是建立应用程序主控菜单的基础。运用窗体控件作为宏的载体可通过两种途径: 从视图菜单中打开窗体工具栏,将可以使用的窗体控件拖曳到Excel97工作表上,然后重复为绘图对象指定宏的操作过程,通过上述操作,作为宏的载体的窗体控件将“浮”在Excel97工作表上,用鼠标单击该控件即可运行指定的宏。 通过Visual Basic 编辑器建立自定义窗体,将自定义窗体控件作为宏的载体。通讯录处理程序打开数据库二前,因没有将要打印的数据故打
39、 印通讯录按钮不掘应用;数据库打开涪打开数据库 按齟将失去焦.点,避免重复打开数据库UI-IU-itI打开数据库I 订印11讯录退出 imBiairBiBiniBiviMiBiniBiBmiBiriifiI例如:建立如图所示名为“通讯录处理程序”的自定义窗体,然后通过“打开数据库”和“打印通讯录”按钮分别运行“打开数 据库”和“打印通讯录”两个宏,具体操作步骤为:第一步,进入 Visual Basic编辑器;第二步,通过Visual Basic编辑器的插入菜单添加用户窗体;第三步,设置窗体属性,在本例中将窗体的Cption属性和(名称)属性都设置为“通讯录处理程序”;第四步,为窗体添加控件,同
40、时设置控件属性,窗体控件的属性很多,Excel97为每个控件属性都定义了一个默认值,因此,用户不必对每一个属性都重新设置,只需设置用户认为需要更改的属性即可;第五步,通过控件的 Click事件指定宏,如将宏“打印通讯录”指定给控件“打印通讯录”的代码如下:Private Sub打印通讯录 _Click()End Sub注意:在用户自定窗体的类模块中不能直接调用Excel97宏,必须使用Run方法,在使用Run方法调用宏的过程中,宏名应包括在括号和引号内。Excel97所提供的通过载体运行宏的特性,使用户在开发管理程序的时候更加得心应手。自动运行的宏在 Excel5 中有四个自动执行的宏:Aut
41、o_Open、Auto_Close、Auto_Activate 和 Auto_Deactivate , Excel97 为了保持向后的兼容性对这四个宏予以了保留。在本文所列举的通讯录处理程序中,有一个Auto_Open宏的应用例子:Sub auto_open()通讯录处理程序.ShowEnd Sub通过此宏的应用,打开文件“打印通讯录.xls ”将同时激活“通讯录处理程序”窗体,使Excel97的应用更加自动化。这只是运用Auto_Open 宏的一个最简单的例子,实际上,Auto_Open宏在设置密码、初始化工作簿以及定义Excel97工作环境等方面都能发挥极大的作用。至此,一个较为完整的通讯
42、录处理程序编制完毕。在实际工作中,用户所处理的业务会远远复杂于本文所列举的例子,但具体操作过 程大致不会超出上面所述范畴。需要说明的是:虽然 Excel97保留了这四个宏,但是Excel97新增加的自动响应事件的功能却要强大得多。Excel97常用的自动响应事件有46个,以上四个宏分别被 Open事件、WorkbookBeforeClose 事件、Activate 事件和Deactivate 事件所代替。Open事件是打开工作簿时自动响应的事件。WorkbookBeforeClose 事件是当任一打开的工作簿要关闭时立即产生的事件。Activate 事件是激活一个工作簿、工作表、图表或嵌入式图
43、表时自动响应的事件。Deactivate 事件是图表、工作表或工作簿从活动状态转为非活动状态时自动响应的事件。用户掌握和熟练使用 Excel97事件,能在Excel97的应用方面达到一个新的境界。读书人推崇开卷有益,在Excel97的应用中同样包含“温故而知新”的哲理,博大精深的Excel97,为我们提供了许许多多神奇的功能,需要我们在日常应用中去不断地探索和挖掘。第三步,设置窗体属性,在本例中将窗体的Cption属性和(名称)属性都设置为“通讯录处理程序”;第四步,为窗体添加控件,同时设置控件属性,窗体控件的属性很多,Excel97为每个控件属性都定义了一个默认值,因此,用户不必对每一个属性
44、都重新设置,只需设置用户认为需要更改的属性即可;第五步,通过控件的 Click事件指定宏,如将宏“打印通讯录”指定给控件“打印通讯录”的代码如下:Private Sub打印通讯录 _Click()Run (打印通讯录)End Sub注意:在用户自定窗体的类模块中不能直接调用Excel97宏,必须使用Run方法,在使用Run方法调用宏的过程中,宏名应包括在括号和引号内。Excel97所提供的通过载体运行宏的特性,使用户在开发管理程序的时候更加得心应手。自动运行的宏在 Excel5 中有四个自动执行的宏:Auto_Open、Auto_Close、Auto_Activate 和 Auto_Deact
45、ivate , Excel97 为了保持向后的兼容性对这四个宏予以了保留。在本文所列举的通讯录处理程序中,有一个Auto_Open宏的应用例子:Sub auto_open()通讯录处理程序.ShowEnd Sub通过此宏的应用,打开文件“打印通讯录.xls ”将同时激活“通讯录处理程序”窗体,使Excel97的应用更加自动化。这只是运用Auto_Open 宏的一个最简单的例子,实际上,Auto_Open宏在设置密码、初始化工作簿以及定义Excel97工作环境等方面都能发挥极大的作用。至此,一个较为完整的通讯录处理程序编制完毕。在实际工作中,用户所处理的业务会远远复杂于本文所列举的例子,但具体操
46、作过 程大致不会超出上面所述范畴。需要说明的是:在 Excel 里通过使用宏我们可以实现许多普通方法无法实现的功能!一个简单的例子就足以说明这一点 :在 Excel 里的 sheet1 的 SelectionChange 事件里写入如下代码:MsgBox Selection.Cells.Count那么在你点选单元格的时候, excel 会弹出提示框告诉你所选取的单元格的数目。整个过程的完整代码为: Private Sub Worksheet_SelectionChange(ByVal Target As Range)MsgBox Selection.Cells.CountEnd Sub是不是很
47、奇妙!在 Excel 里编写宏的语言是 vba 语言( visual basic for application) ,学好它对你更好的使用 Excel 绝对大有裨益! 很多初学者都在这方面开始努力,但是在自己独立编写宏的时候也常常碰到一些问题。而且这些问题在 excel 的帮助文件里很难找到答案。 我在这里列举几个出现频率较高的问题与大家一起分析,希望能带给大家一些启发。1、如何隐藏宏的执行过程一个宏编写完后, 执行的过程就是一行一行运行代码的过程, 这时屏幕会反映每一个步骤所产生的变化。 这样不仅看上去不美观而且 会暴露编程思路。更重要的是这样也会降低系统的执行速度!所以,我们应该屏蔽掉这个
48、过程。方法:在你写的宏代码的第一行前加上一句: Applicatiion.screenupdate=False 。然后在你的代码的最后加上: Applicatiion.screenupdate=True 。这样就可以达到你屏蔽程序执行过 程的目的了。2、如何在宏代码里使用工作表函数在 Excel 里有很多函数使用起来很方便,譬如 ;sum;average;min;max. 但是工作表函数 是不能在宏代码里直接使用的。它们和 vba 语言中的函数是不一样的。 Vba 中的函数例如 val,mid 在工作表里也不能通用。所以我在这里讲 解一下在vba语言里调用工作表函数的方法。让一个变量得到单元格
49、A1到B5的总和(变量设为 X) X=SUM(RANGE(A1:B5)的写法明显是行不通的;正确写法是 X=APPLICATI0N.W0RKSHEETFUNCTI0N.SUM(RANGE(A1:B5也就是说必须通过 Application 对象的 Worksheetfunction 属性来间接调用工作表函数!3、单元格区域与数组 我们有时会需要将一个区域的值赋予一个数组或者正好相反是要将一个数组得值填充到一个区域,例如我们要将区域A2到D4的所有单元格中的结果存入一个数组:首先,我们应该定义一个数组变量DATA因为EXCELX作表示二维的,故而使用二维的数组变量也比较合适!由于A2:D4这个区
50、域有3行,4列所以:DIM DATA(1TO 3,1 TO 4)FOR A=1 TO 3FOR B=1 TO 4 DATA(A,B)=RANGE(A2:D4).CELLS(A,B).VALUE NEXT BNEXT A这样DATA变量就拥有了该区域的所有单元格结果,通过MSGB0XATA(1,1)类似的方法里可以一个个的验证。之后如果你要将该变量的结果赋予一个区域例如:A6:D8;可以用如下代码:RANGE(A6:D8).VALUE=DATA的例子就足以说明这一点:在 Excel 里的 sheet1 的 SelectionChange 事件里写入如下代码:MsgBox Selection.Cells.Count那么在你点选单元格的时候, excel 会弹出提示框告诉你所选取的单元格的数目。整个过程的完整代码为:Private Sub Worksheet_SelectionChange(ByVal Target As Range)MsgBox Selection.Cells.CountEnd Sub是不是很奇妙!在 Excel 里编写宏的语言是 vba 语言( visual basic for application) ,学好它对你更好的使用 Excel 绝对大有裨益! 很多初学者都在这方面开始努力,但是在自己独立编写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- etc押金合同范本
- 出租工地合同范本
- 别墅临街出售合同范本
- 与安踏合作合同范本
- 供应提成合同范本
- 医用设备购销合同范本
- 上门医疗服务合同范例
- 中标方转让合同范本
- 美发合租合同范本
- 勾机械转让合同范本
- 四大名著导读-课件-(共18张)
- app 购买合同范例
- 高二上学期物理(理科)期末试题(含答案)
- 2024年房地产经纪人《房地产经纪专业基础》考前冲刺必会试题库300题(含详解)
- 矿山生态修复工程不稳定斜坡治理工程设计
- 躲避球运动用球项目评价分析报告
- 风机盘管更换施工方案
- 河道整治与生态修复工程监理规划
- 2024年度委托创作合同:原创美术作品设计与委托制作3篇
- 建设工程招标代理合同(GF-2005-0215)(标准版)
- 剪映专业版教学课件
评论
0/150
提交评论