首页 VBA编程及应用基础VBA编程及应用基础ppt课件(完整版)

VBA编程及应用基础VBA编程及应用基础ppt课件(完整版)

举报
开通vip

VBA编程及应用基础VBA编程及应用基础ppt课件(完整版)VBA概述本讲内容VBA的开发环境VBE宏的基本概念录制、编辑、运行宏保存带宏的工作簿什么是VBA?VBA(VisualBasicforApplications)是MicrosoftOffice系列组件的内置编程语言,即应用程序中的VB。它“寄生”于Office应用程序,是Office套装软件的一个重要组件使用VBA可以结合Office组件开发应用程序,如在Excel中自定义函数、开发应用程序等例:认识VBAExcel中使用VBA功能VBA使重复的任务自动化自定义Excel功能区和界面自定义Excel,使其成为开发...

VBA编程及应用基础VBA编程及应用基础ppt课件(完整版)
VBA概述本讲内容VBA的开发环境VBE宏的基本概念录制、编辑、运行宏保存带宏的工作簿什么是VBA?VBA(VisualBasicforApplications)是MicrosoftOffice系列组件的内置编程语言,即应用程序中的VB。它“寄生”于Office应用程序,是Office套装软件的一个重要组件使用VBA可以结合Office组件开发应用程序,如在Excel中自定义函数、开发应用程序等例:认识VBAExcel中使用VBA功能VBA使重复的任务自动化自定义Excel功能区和界面自定义Excel,使其成为开发平台创建报表对数据进行复杂的操作和分析VBA开发环境VBEOffice提供了VBA的开发环境,即VisualBasic编辑器(VBE)窗口在使用VBE前,必须先运行Office软件,如Excel2010在Excel环境中打开VBE窗口的方法:单击“开发工具”选项卡中“代码”组中的“VisualBasic”按钮按Alt+F11组合键进入VBE“开发工具”选项卡默认情况下,“开发工具”选项卡没有显示在功能区,可通过“自定义功能区”设置将其显示 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 资源管理器窗口代码窗口属性窗口立即窗口本地窗口VBA工程工作表对象工作簿对象窗体模块工程:模块、窗体等对象的集合,在VBA中一个工作簿就是一个工程对象(P.11):代表应用程序中的元素,比如,工作表、单元格、图表、窗体,或是一份 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 属性(P.13):属性定义了对象特性,像大小、颜色、对象状态等方法(P.13):对象可以执行的动作模块:声明及过程的集合过程:可单独执行的程序单元事件:是指发生在一个对象上并能被此对象辨别的操作,如打开工作簿了解几个概念添加模块菜单栏“插入”|“模块”命令添加过程在模块中添加过程,最常见的结构如下:可以通过“插入”|“过程”对话框Sub过程名()程序代码EndSub第一个VBA程序添加一个模块,再添加一个子过程,如下:运行该过程查看结果SubTest1()Range("A1").Value="Hello,World!"EndSub如何引用单元格中的值两种方法:Cells(行号,列号).Value如:Cells(5,3).Value,表示引用的是C5单元格Range("单元格地址").Value如:Range(“C5”).Value,表示引用的也是C5单元格一开始直接写VBA代码有点困难?录制宏很好用哦什么是宏?(P.1)具体学习VBA之前,先来了解一下“宏”宏是通过一次单击就可以应用的命令集,一般用于自动执行一系列重复性操作,以提高工作效率本质上宏是保存在VisualBasic模块中的一组代码例:将认识宏工作簿Sheet1工作表中的A1单元格设置成绿色底纹的格式创建宏(P.1)使用宏录入器录制宏,步骤如下:在“开发工具”选项卡上的“代码”组中,单击“录制宏”在弹出的“录制新宏”对话框中进行设置后再单击“确定”开始录制。在工作表中执行某些操作。在“开发工具”选项卡上的“代码”组中,单击“停止录制”。实践:录制一个修改单元格底纹的宏保存带宏的工作簿保存带宏的工作簿时会弹出如下信息框需要将工作簿保存为“启用宏的工作簿(.xlsm)”单击“否”按钮,弹出“另存为”对话框在“保存类型”下拉列表框中选择“Excel启用宏的工作簿(.xlsm)”进行保存执行宏——方法1(P.2)使用“宏”对话框选择“开发工具”选项卡,在“代码”组中单击“宏”按钮,弹出“宏”对话框单击“执行”按钮执行宏——方法2为宏指定快捷键录制宏时可以指定在“宏”对话框中选中要设置的宏,单击“选项…”按钮执行宏——方法3将宏命令添加至功能区或快速工具栏运行宏——方法4将宏指定到工作表上的按钮(或其它图形对象)插入表单按钮控件为表单按钮控件指定宏实践自己录制一个设置单元格边框的宏,并用以上四种方法运行录制的宏思考:宏的本质是什么?查看宏代码选择“开发工具”选项卡,在“代码”组中单击“宏”按钮,弹出“宏”对话框单击“编辑”按钮查看宏代码VBA过程代码“设置底纹”是宏的名称查看宏代码Sub设置底纹()''设置底纹宏WithSelection.Interior.Pattern=xlSolid.PatternColorIndex=xlAutomatic.Color=5287936.TintAndShade=0.PatternTintAndShade=0EndWithEndSub说明一个宏就是一个sub过程单引号’后为注释内容,不是代码部分With语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称Selection.Interior表示“选定区域的内部”对象Pattern等为interior对象的属性使用帮助:选择某个关键字,按F1可弹出帮助系统!实践自动排序(P.17操作题(3))自动累计自动完成高级筛选(P.17操作题(4))高级筛选ThankYouVBA编程基础本讲内容变量数据类型运算符与表达式常用内部函数变量一个问题:如何交换两个杯子中的可乐?变量如何交换A1和B1两个单元格的值?SubTest()x=Range("A1").ValueRange("A1").Value=Range("B1").ValueRange("B1").Value=xEndSub变量变量是指在程序运行过程中其值可以改变的量说明(P.22):变量用于存储程序运行中的临时数据变量有一定类型,占用一定空间变量命名规则:字母打头,最长255个字符。等如:Sum、x_1等数据类型数据是指可以被计算机处理的信息,是程序的必要组成部分,也是程序处理的对象数据分类的目的是为了快速处理数据和有效利用存储空间不同的数据类型占用的存储空间不同、或者存储格式不一样,VBA中常用的数据类型:数值型、字符型、逻辑型、对象型数据类型数值型字节型Byte:1字节整型Integer:2字节长整型Long:4字节单精度浮点数Single:4字节双精度浮点数Double:8字节货币型Currency:8字节数据类型字符型定长String*N(N∈[1,65535])不定长String数据类型逻辑型Boolean:2字节对象型任何对象Object工作簿Workbook工作表Worksheet区域Range变量声明变量声明的目的是说明变量的作用域和变量的类型,以便为变量分配内存空间和及时回收内存空间建议变量先声明再使用,在[通用][声明]中写OptionExplicit语句变量声明变量类型的显式说明:Dim语句,语法:Dim变量名[As数据类型][,变量名[As数据类型]…]举例:DimaAsSingleDimintCountAsInteger,strPhoneAsString*8如何将i和j声明为整型变量?Dimi,jAsIntegerDimiAsInteger,jAsInteger√实践编写一个宏,以A1单元格中的数值作为半径,求出圆的周长与面积,并将它们分别写入B1单元格和B2单元格常量除了变量,数据还可以分为常量。常量是指在程序执行之前就已经确定了值,并且在程序执行过程中,其值不会发生改变的量VBA中有三种形式的常量:直接常量符号常量系统常量常量直接常量也叫一般常量,用户直接 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写的值,如:18、1.25、”China”、True、False符号常量用符号表示的常量,定义格式如下:Const常量名[As数据类型]=常量表达式如:ConstPI=3.1415926使用符号常量可以减少程序出错的可能性,加快程序的修改和提高程序的可读性常量系统常量VBA提供的系统内部已经定义好的常量,可以直接使用,分为VBA系统常量和Excel系统常量VBA系统常量以小写字母“vb”开头,例如色彩常量“vbBlack”表示黑色。Excel系统常量通常以小写字母“xl”开头系统常数采用大小写混合的格式,用户可以通过在VBE中单击“视图”菜单下的“对象浏览器”命令,在打开的“对象浏览器”中查看系统常量的具体值运算符与表达式运算符是对特定数据执行运算任务的操作符将常量、变量和函数等用运算符连接起来的运算式称为表达式常见的4种基本运算符:算术运算符连接运算符比较运算符逻辑运算符算术运算符运算符+-*/\Mod^名称加法减法/取负乘法浮点除法整数除法取模指数说明:/:浮点除法,如10/3的结果为3.3333333\:整数除法,若操作数不是整数,则通过舍去小数部分再进行整除,如10\3的结果为3,11.6\4的结果为3Mod:取模运算,返回两个数(若是浮点数则四舍五入为整数)相除的余数,如12Mod5的结果为2,19Mod6.7的结果为5^:指数运算,进行乘幂运算,如3^2的结果为9算术表达式算术表达式与数学表达式的区别不能漏写运算符,如3xy应写为3*x*y算术表达式中使用的括号都是圆括号,如((a-b)^2+(a+b)^2)*c算术运算符的优先级:()、^、*/、\、MOD、+-练习:表达式2^3/3Mod9\4的值为?答案:1连接运算符连接运算符用来连接两个以上的字符串,使其成为一个单一的字符串。VBA中有两个:&运算符。任何非字符串变量或表达式在进行&连接前都会被转换为字符串,如+运算符。操作数都是字符串时才可以进行连接运算,如"Visual"&"Basic"的结果为"VisualBasic""Excel"&2010的结果为"Excel2010"4&5的结果为字符串"45""Visual"+"Basic"的结果为"VisualBasic""Excel"+2010运行结果出错,提示“类型不匹配”4+5的结果为整数9关系运算符关系运算符用于比较数据的大小关系,主要有:=、<>、<、>、>=、<=说明数值的比较按数值取值字符的比较按ASCII码取值逐个比较、英文字母按字典顺序、数字按数值顺序、小写字母大于大写字母。例:"cat">"dog"?"101">"99"?逻辑运算符常用的逻辑运算符有:And逻辑与Or逻辑或Not逻辑非优先级:Not>And>Or实践编写一个宏,针对A1单元格中输入的某个个年份数据进行判断,并以“闰年”或“平年”为结论写入到B1单元格中闰年的判断条件:能被4整除但不能被100整除,或者能被400整除With语句编写一个宏,设置A1单元格的文字属性为宋体、14磅、粗体、字体颜色为红色?对象重复书写With语句作用:简化代码,不需要输入重复的内容格式:实践:改写过程“字体格式”?With对象.属性1=属性值1.属性2=属性值2…….属性n=属性值nEndWith常用的VBA函数Int(x)函数返回不大于x的整数如:Int(5.8)的结果为5,Int(-5.8)的结果为-6Rnd()函数返回一个[0,1)之间的随机浮点数若要返回一个[m,n]之间的随机整数,则可以使用公式:Int(Rnd()*(n-m+1))+m在调用Rnd函数之前,应先使用无参数的Randomize语句初始化随机数生成器实践编写一个宏,先在A1单元格中生成一个[10,99]之间的随机整数,然后识别该整数是奇数还是偶数,并将识别结果写入到B1单元格常用的VBA函数Val(s)函数返回s中第一个非数字字符之前的数字(忽略空格)例如:Val(“1615198thStreetN.E.”)的返回值为1615198可以把Val(s)当作是一个将数字文本转换成数字数值的函数常用的VBA函数InputBox函数作用:产生输入对话框,向计算机提供信息,输入数据格式:变量=InputBox(提示信息[,对话框标题][,默认值])返回值:输入框中输入的内容,字符型常用的VBA函数MsgBox函数作用:产生消息框,向用户输出提示信息格式:[变量=]MsgBox(提示信息[,类型][,对话框标题])对话框类型一般由“图表样式”+“按钮样式”+“默认按钮”组成返回值:整型,对应用户单击的按钮实践编写一个宏,使用输入框从键盘输入三个整数,然后找出三个数中的最大数,并用消息框输出VBA程序控制结构判断结构本讲内容If语句SelectCase语句程序控制结构程序一般是按照书写的顺序执行的,但有时候需要按照不同的条件执行不同的操作,这就是流程控制VBA中程序的控制结构分为:顺序结构选择结构循环结构顺序结构AB选择结构PAB循环结构PA判断语句判断语句用来根据条件表达式的结果控制程序的流程If语句SelectCase语句★If语句行结构 If<条件>Then<语句1>[Else<语句2>]块结构 If<条件>Then <语句块1> [Else <语句块2>] EndIfIf语句流程图:语句1语句2表达式TrueFalseIf语句实例: 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 一个找出两个数中更大数的程序,界面设计如下图所示。在B1和B2单元格分别输入任意一个数,单击“更大数”圆角矩形时,在B3单元格输出两数中更大的数If语句实践1:设计一个找出三个数中最大数的程序,界面设计如下图所示。在B1、B2和B3单元格分别输入任意一个数,单击“最大数”圆角矩形时,在B4单元格输出三个数中更大的数If语句实践2:编写一个过程,用输入框InputBox函数输一个学生的成绩,然后判断此学生的成绩是否合格,并将评判结果以“成绩合格”或“成绩不合格”用消息框显示If语句实例:设计一个“健康秤”程序,界面设计如下图所示。单击“健康状况”按钮,根据公式: 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 体重=身高-105判断某人的健康状况。体重高于标准体重*1.1为偏胖,在B3单元格输出“偏胖,注意节食”;体重低于标准体重*0.9为偏瘦,在B3单元格输出“偏瘦,增加营养”;其它则在B3单元格输出“正常,继续保持”If<条件1>Then <语句1>Else If<条件2>Then <语句2> Else <语句3> EndIfEndIf嵌套的If语句If语句实践3:编写一个过程,用InputBox函数输入某门课程的百分制成绩x,然后将其按下表的评定条件转换成等级制成绩y,并将等级制成绩用MsgBox函数输出优良中及格不及格90≤x≤10080≤x<9070≤x<8060≤x<70x<60分支较多时,嵌套的If语句太烦?If语句 If<条件1>Then <语句块1> ElseIf<条件2>Then <语句块2> …… [ElseIf<条件n>Then <语句块n>] [Else <语句块n+1>] EndIfIf语句ElseIf语句的流程图:语句2假真语句1表达式2表达式3语句3语句4真假假真表达式1If语句重新实现“实践3”?If语句实践4:根据杭州的气候特点,通常认定3月~5月为春季,6月~8月为夏季,9月~11月为秋季,12月~次年2月为冬季。编写一个程序,在B1单元格输入当前的月份,单击“判定”按钮时,在B2单元格以“*月是*季”的形式输出结果SelectCase语句SelectCase<测试表达式> Case<表达式值1> <语句块1> …… [Case<表达式值n> <语句块n>] [CaseElse <语句块n+1>]EndSelect<测试表达式>:算术表达式或字符表达式,测试对象<表达式值>:下列格式中的一个或多个(,)精确表示:<表达式1>[,<表达式2>……],如:1,3,5,7,9范围表示:<表达式1>To<表达式2>,如:"A"To"Z"关系表示:Is<关系运算符><表达式>,如:Is>=60功能:根据测试表达式的值,从多个语句块中选择符合条件的一个语句块执行!SelectCase语句重新实现“实践4”?SelectCase语句实践:使用SelectCase语句重新实现“实践3”程序?SelectCase语句实践:某商场举行周年庆购物促销活动,活动规则如下:金额500元以下不享受优惠金额500元及以上且小于2000元优惠10%金额2000元及以上且小于4000元优惠12%金额4000元及以上且小于6000元优惠14%金额6000元及以上优惠15%编写一个过程,输入购物总价,计算应付款和优惠款额ThankYou一个问题在员工信息表中,根据身份证号填充各员工的性别?使用过程(P.75)本讲内容过程的概念Sub子过程Function函数过程过程的概念(P.75)过程是一段完成特定功能的语句集合,以一个名字来标识,并用该名字来调用根据是否有返回值,可以将过程分成两类:Sub子过程Function函数过程Sub子过程(P.76)Sub子过程用于运行指定的操作,但不返回运行结果,其结构如下:Sub子过程过程的组成部分及其含义Public可选的。表示所有模块的所有其它过程都可访问这个Sub过程。Private可选的。表示只有在包含其声明的模块中的其它过程可以访问该Sub过程。Static可选的。表示在调用之后保留Sub过程中各局部变量的值。name必需的。Sub过程的名字,须遵循标准的变量命名约定。arglist可选的。代表在调用时要传递给Sub过程的参数列表。多个参数则用逗号隔开。Sub子过程特别说明:如果没有使用Public、Private显式指定,则缺省表示Sub过程是公用的(Public)arglist中的具体参数的格式通常为:varname[()][Astype]不能在别的过程中定义Sub过程ExitSub语句使执行立即从Sub过程中退出,它可以出现在过程中的任何位置Sub子过程添加Sub子过程Sub子过程实例1:编写一个名称为Example的Sub过程,该过程用于在当前活动工作表A1:A10区域的各单元格内填上“VBA”文本,且字号大小依次从10等差渐变到28Sub子过程练一练:编写一个名称为Practice的Sub过程,该过程用于在当前活动工作表A1:J1区域的各单元格内填上“SUB”文本,且随机设置各单元格为不同的背景填充色Sub子过程带参数的Sub子过程:Sub子过程调用Sub子过程过程名参数列表如:HouseCalc99800,43100Call过程名(参数列表)如:CallHouseCalc(380950,49500)Sub子过程Sub子过程实例2:编写一个名为Example的Sub过程,该过程用于输入一个文本,然后调用编写的另外一个名为MySub的子过程,MySub子过程用于在当前活动工作表A1:A10区域的各单元格内填上Example子过程输入的文本,并设置字号大小依次从10等差渐变到28Sub子过程练一练:编写一个名称为Practice的Sub过程,该过程用于随机生成一个[3,9]之间的整数x,然后调用编写的另外一个名为MySub的子过程,MySub子过程用于在当前活动工作表A1单元格起输出x行如图所示的星号三角形Function函数过程(P.82)Function函数过程用于完成指定的功能,并通过函数名返回运行结果,它的结构为:Function函数过程特别说明:Function函数过程的各组成部分含义同Sub子过程函数通常要返回一个值,这个返回值的数据类型通过在定义时用AsType来指定运行结果是通过函数名返回的,因此,过程中通常有name=expression这样的语句Function函数过程添加Function函数过程Function函数过程调用Function函数过程自定义的Function函数过程使用像内置函数一样的调用方法,分两种情况:需得到函数的返回值不在意函数的返回值Function函数过程Function函数过程的使用在VBA程序代码中调用在Excel工作表的公式中调用Function函数过程在VBA程序代码中调用(P.84)实例3:自定义一个名为MySum的函数过程,其用于计算1到n各自然数的和,在当前活动工作表放置两个按钮,其中一个按钮在单击时先调用MySum函数求出1到100各数的和,并将此和加上100显示在A1单元格,另一个按钮在单击时先调用MySum函数求出1到10各数的和,并将此乘上100显示在B1单元格Function函数过程在VBA程序代码中调用练一练:自定义一个名为MySum的函数过程,其用于计算m到n之间各整数的和,在当前活动工作表放置两个按钮,其中一个按钮在单击时先输入两个正整数x和y,然后调用MySum函数求出x到y之间各数的和并显示在A1单元格,另一个按钮在单击时先输入一个正整数b,然后随机生成一个[1,b]之间的整数a,最后调用MySum函数求出a到b之间各数的和并显示在B1单元格Function函数过程在Excel工作表的公式中调用(P.85)若自定义函数是用Public修饰的公用函数,则在Excel的“插入函数”对话框中能找到此函数Function函数过程在Excel工作表的公式中调用实例4:在员工信息表中,自定义一个函数Gender,该函数用于判断某身份证持有人的性别,然后在Sheet1的D列调用此函数根据身份证号填充各员工的性别?Function函数过程在Excel工作表的公式中调用练一练:新建一个工作簿,在Sheet1工作表的A列输入15个年份,分别从2000年到2014年。自定义一个函数IsLeap,该函数用于判断某个年份是否为闰年,是则返回True,否则返回False,然后在Sheet1的B列调用此函数判断A列各年份是否为闰年Function函数过程在Excel工作表的公式中调用练一练:某企业的年终奖金按销售业绩来发放,标准奖金率见下表,但为了激励员工的忠诚,实际计算时,奖金率还要加上工龄一半的百分数,试自定义一个函数Reward,然后在“员工奖金”工作簿Sheet1工作表的“奖金”列中调用此函数计算各员工的奖金月销售额奖金率月销售额奖金率<=30004%15001~3000012%3000~80006%30001~5000016%8001~150009%>5000020%Good-byeExcel的VBA对象ExcelVBA对象模型&Range对象Excel对象模型VBA通过对象来操作和控制Excel查看完整的ExcelVBA对象模型:在VBE的工具栏单击按钮在帮助窗口的工具栏单击按钮在目录窗格的“Excel2010开发人员”下选择“Excel对象模型参考”主题Excel对象模型在对象模型列表中,以复数形式陈列的表示的是一个集合。集合是指一组相似的对象,例如Workbooks是一个集合,而Worksheets是另一个集合例:Application.Workbooks("Book1").Worksheets("Sheet1").Range("A1")其中,Book1是集合Workbooks的一个元素,Sheet1是集合Worksheets的一个元素,A1是集合Range的一个元素ExcelVBA的常用对象Excel应用程序(Application)工作薄(Workbook)工作表(Worksheet)区域(Range)使用对象变量定义对象变量DimxlsAppAs[Excel.]ApplicationDimxlsWBAs[Excel.]WorkbookDimxlsWSAs[Excel.]WorksheetDimxlsRGAs[Excel.]Range为对象变量赋值SetxlsWB=Workbooks("eg1.xlsx")SetxlsWS=Workbooks(1).Worksheets("Sheet1")SetxlsRG=Workbooks("eg1").Sheets(1).Range("A1:D5")几个特殊对象当前宏代码运行的工作簿ThisWorkbook活动窗口的工作簿ActiveWorkbook活动工作簿中的活动工作表ActiveSheet活动窗口的活动单元格ActiveCellRange对象(P.118)Range对象本身就表示一个集合,可代表某一单元格、某一行、某一列、某一选定区域可用Range(arg)来返回代表单个单元格或单元格区域的Range对象,其中arg为区域名称。例如: DimvRngAsRange SetvRng=ThisWorkbook.ActiveSheet.Range("A1:A5")Range对象还可以使用Range(Cell1,Cell2)来引用一个单元格或单元格区域,其中Cell1是区域左上角(右下角)单元格地址,Cell2是区域右下角(左上角)单元格地址例如: Range("A1:C5") || Range("A1","C5")Range对象的常用属性Value表示单元格的内容,不仅可表示单个单元格的值,也可将整个区域作为一个数组返回或者设置例1: ActiveCell.Value=5例2: vData=ActiveSheet.Range("A5:E6").Value ActiveSheet.Range("A8:E9").Value=vDataRange对象的常用属性Cells表示单元格区域中的所有单元格可用Cells(row,column)表示单元格区域中的某个单元格,其中row为行号,column为列标例如,下面代码将当前工作表B2:D4区域的第2行第2列的单元格(即C3)的值设为5: ThisWorkbook.ActiveSheet.Range("B2:D4").Cells(2,2).Value=5Range对象的常用属性Offset表示相对于指定区域偏移若干行和列以后的区域,使用方法:Offset(row,column),其中row和column分别为行偏移量和列偏移量例: ActiveCell.Offset(3,3).Value=5实践1在公务员考试成绩表工作簿中,假定学生均已获得相应学位,试编写一个宏,用ForEach…Next循环遍历“学历”列各学生的学历,然后在“学位”列填写其对应的学位。学历学位对应关系如下表所示:学历学位博士研究生博士硕士研究生硕士本科学士其他无Range对象的常用属性CurrentRegion表示当前区域,当前区域是以空行与空列的组合为边界的区域例如,下面代码选定工作表Sheet1上的当前区域: Worksheets("Sheet1").Activate ActiveCell.CurrentRegion.SelectRange对象的常用属性Columns表示指定单元格区域中的所有列可用Columns(index)表示单元格区域中的某列例如,下面代码将B2:D4区域第一列中每一单元格的值置为0: ThisWorkbook.ActiveSheet.Range("B2:D4").Columns(1).Value=0Range对象的常用属性ColumnWidth表示指定区域中所有列的列宽,例: WithWorksheets("Sheet1").Range("B3.A12") .ColumnWidth=.ColumnWidth*2 EndWithRange对象的常用属性Column返回指定区域第一个子区域的第一列的列号例如,下面代码返回myRange区域最后一列的列号: myRange.Columns(myRange.Columns.Count).ColumnRange对象的常用属性Rows表示指定单元格区域中的所有行可用Rows(index)表示单元格区域中的某行例如,下面代码将B2:D4区域的第3行删除: ThisWorkbook.ActiveSheet.Range("B2:D4").Rows(3).DeleteRange对象的常用属性RowHeight表示指定区域中所有行的行高,例: ActiveSheet.Range("B3.A12").RowHeight=10Range对象的常用属性Row返回区域中第一个子区域的第一行的行号例如,下面代码将工作表sheet1中每隔一行的行高设置为4磅: ForEachrwInWorksheets("Sheet1").RowsIfrw.RowMod2=0Thenrw.RowHeight=4EndIfNextrwRange对象的常用属性Count表示指定单元格区域的单元格个数注意:Cells、Columns和Rows集合对象亦有Count属性实践2假设员工薪资表工作簿中的员工总数未知,试编写一个宏,统计其中薪资超过5000的员工人数,并将统计结果用消息框输出Range对象的常用属性Font:表示指定区域的字体格式,其本身也是一个对象,有如下常用的属性:Name:字体名称FontStyle:字形Size:字号Strikethrough:删除线Superscript:上标Subscript:下标OutlineFont:空心字Shadow:阴影Underline:下划线ColorIndex:颜色编号Range对象的常用属性ColorIndexColor描述1vbBlack黑色2vbWhite白色3vbRed红色4vbGreen绿色5vbBlue蓝色6vbYellow黄色7vbMagenta洋红8vbCyan青色Range对象的常用属性Interior表示指定区域的内部格式,其本身也是一个对象,常用的属性是ColorIndex和Pattern,其中ColorIndex的取值范围如Font对象的ColorIndex值,Pattern表示填充图案实践3假设员工薪资表工作簿中的员工总数未知,试编写一个宏,将薪资最高的员工的所在行设置为字体加粗、红色,背景为绿色填充?实践3之我的解决方案 命名参数传递(P.92)命名参数在调用Sub或Function过程时,可不必拘泥于语法所规定的特定顺序来提供值,而按自定义顺序用命名参数来分配值。例如,假设一Sub过程设定了三个参数: SubDoSomeThing(namedarg1,namedarg2,namedarg3) 则在调用它时,可使用以下语句: DoSomeThingnamedarg3:=4,namedarg2:=5,namedarg1:=20命名参数传递命名参数在调用具有可选的参数过程时显得特别有用。如果使用命名参数,则不必利用逗号去区分出失去位置的参数例如:MsgBox"Hi,VBA.",,"命名参数示例"等价于MsgBox"Hi,VBA.",Title:="命名参数示例"Range对象的常用属性Address返回区域的引用地址,默认时返回的是绝对引用,例如: Setmc=Worksheets("Sheet1").Cells(1,1) MsgBoxmc.Address 上面语句执行后,消息框中显示“$A$1”Range对象的常用属性End表示包含源区域的区域尾端的单元格,语法为:End(Direction),其中Direction有4个取值:xlDown、xlToRight、xlToLeft、xlUp例如,下面代码将选定区域从单元格B4延伸至第四行最后一个包含数据的单元格 Worksheets("Sheet1").Activate Range("B4",Range("B4").End(xlToRight)).Select实践4利用Range对象的End属性实现实践2的功能?Range对象的常用属性MergeCells判断单元格或区域是否被包含在一个合并区域中,如果是,则该值为TrueMergeArea表示某单元格所在的合并区域。如果该单元格不在合并区域内,则该属性返回该单元格本身例如,下面代码表示为包含单元格A3的合并区域赋值 Setma=Range("a3").MergeArea Ifma.Address="$A$3"Then MsgBox"notmerged" Elsema.Cells(1,1).Value="42" EndIfRange对象的常用属性注意:Cells、Columns及Rows本身也是一个Range型的集合对象,因此,它们也具有Value、Count、Font、Interior等属性Range对象的常用方法Activate激活单个或多个单元格 Worksheets("sheet1").Range("A1").ActivateSelect选中区域 Worksheets("sheet1").Range("A1:B5").SelectAutoFit将区域中的列宽和行高调整为最适当的值 Worksheets(1).Range("A1:E1").Columns.AutoFitRange对象的常用方法Copy:复制Cut:剪切PasteSpecial:粘贴,允许设置粘贴值还是格式(详见帮助)例如,下面代码表示用Sheet1上单元格区域C1:C5和单元格区域D1:D5原有内容的和来取代单元格区域D1:D5中的数据WithWorksheets("Sheet1").Range("C1:C5").Copy.Range("D1:D5").PasteSpecial_Operation:=xlPasteSpecialOperationAddEndWithRange对象的常用方法Insert插入一个单元格或区域,其他单元格作相应移位以腾出空间 ActiveSheet.Range("A1:D1").InsertDelete删除 ActiveSheet.Range("A1:D1").DeleteRange对象的常用方法Clear清除Range内的内容,包括注释和格式 Worksheets("Sheet2").Range("A3.D12").ClearClearContents清除Range内的内容,不清除格式和注释 Worksheets("Sheet2").Range("A3.D12").ClearContentsClearFormats清除Range内的格式 Worksheets("Sheet2").Range("A3.D12").ClearFormatsRange对象的常用方法Merge合并单元格ThisWorkbook.ActiveSheet.Range("A1:D1").MergeUnMerge将合并区域分解为独立的单元格IfRange("A1").MergeCellsThenRange("A1").MergeArea.UnMergeElseMsgBox"notmerged"EndIfByeByeVBA程序设计用户界面的设计本讲内容窗体控件ActiveX控件用户窗体窗体控件&ActiveX控件Why控件EXCEL开发中需要对一个问题有所概念,即:谁使用? ——这决定了程序的操作难度及界面感观窗体控件打开“开发工具”选项卡“控件”|“插入”|“表单控件”命令窗体控件窗体控件有12个控件,其中9个可放到工作表内标签:它用于表现静态文本分组框:它用于将其他控件进行组合按钮:用于执行宏命令复选框:它是一个选择控件,通过单击可以选择和取消选择,可以多项选择选项按钮:通常几个选项按钮组合在一起使用,在一组中只能选择一个选项按钮窗体控件列表框:用于显示多个选项并从中选择一个组合框:用于显示多个选项,可以选择其中的项目或者输入一个其它值滚动条:包括水平滚动条和垂直滚动条,是一种数值选择机制,如调节过渡色微调控件:是一种数值选择机制,通过单击控件的箭头来选择数值,如改变日期或时间示例ActiveX控件打开“开发工具”选项卡“控件”|“插入”|“ActiveX控件”命令ActiveX控件与窗体控件的区别不是靠建立与之相关的“宏”来使用的ActiveX控件有自己的属性和事件过程ActiveX控件隶属于具体的工作表ActiveX控件利用窗体控件实现eg1.xlsx中的Sheet1中的格式设置界面和相应的格式编辑功能?用户窗体UserForm用户窗体用户窗体(UserForm),用以构成应用程序的用户界面部分,提供一个图形界面,供用户与程序进行交互用户窗体设计用户窗体右击工程资源管理器,“插入”|“用户窗体”从工具箱中选择控件为用户窗体添加界面元素在属性窗口内设置各对象属性用户窗体运行用户窗体装载窗体:为窗体分配内存并初始化,可通过调用窗体的Load方法实现窗体加载显示窗体:创建一个图形窗口显示给用户,显示窗体可以调用窗体的Show方法。如果调用Show方法时窗体还没有装载,则会首先自动装载窗用户窗体窗体的显示模式有2种:模式窗体(modal)和无模式窗体(modeless) 显示一个无模式窗体: UserForm1.Show0 模式窗体显示代码为: UserForm1.Show1相应的,可以通过Hide方法隐藏窗体,通过Unload方法来卸载(销毁)窗体用户窗体常用控件:标签(Label)文字框(TextBox)命令按钮(CommandButton)复选框(CheckBox)选项按钮(OptionButton)框架(Frame)列表框(ListBox)组合框(ComboBox)滚动条(ScrollBars)图像(Image)多页控件(MultiPage)用户窗体标签功能:用于显示说明性的文字常用属性:Caption文本框功能:用于输入信息或显示信息,是一个常用的人机交互接口常用属性:Text命令按钮功能:用于启动或结束命令操作常用属性:Caption用户窗体复选框功能:使用复选框可以在一组相关的项目中选择一个或多个项目常用属性:Vlaue(True或False)选项按钮功能:选项按钮在各个选项中只能互相排斥的选择某一项常用属性:Value(True或False)用户窗体列表框功能:用于显示一些值的列表,用户可以从中选择一个或多个值常用属性List:列表框的所有表项,以数组形式存放,使用形式是List(i)ListCount:列表框中表项的总数ListIndex:被选中表项的索引,[-1,ListCount-1]Selected:列表框表项的选中状态,以数组的形式存放,如:Selected(i)=True用户窗体列表框常用方法AddItemitem[,index] 将item添加到列表框的第index项RemoveItemindex 将列表框的第index项删除Clear 清除列表框所有表项用户窗体滚动条功能:实现数据输入常用属性 Min:滚动条所能表示的最小值Max:滚动条所能表示的最大值Value:表示滚动条的当前值SmallChange:单击滚动箭头时滚动条值的改变量LargeChange:单击滚动块与滚动箭头间的区域时滚动条值的改变量用户窗体滚动条常用事件Change:当滚动条的当前值(Value属性)改变时触发Scroll:在滚动条内拖动滚动块时连续触发Change事件和Scroll事件的区别 Change事件用于得到滚动条的最后值Scroll事件用于跟踪滚动条的动态变化实例2编写程序,在打开eg2.xlsx工作簿时,弹出一个窗体显示本周即将(包括今日)要过生日的人员名单如何判断某个日期是在今天和周末之间的?几个日期函数Weekday(date,[firstdayofweek])返回一个整数,代表某个日期是其所在星期的第几天如:Weekday(Date,2),把周一作为一个星期的第一天并返回今天是星期几DateValue(strDate)返回用字符串形式表达的日期对应的实际日期如:DateValue(“2013-6-1”) ,返回#2013-6-1#Year(date)、Month(date)、Day(date)分别返回一个日期的年份、月份、日子DateSerial(year,month,day)将year、month、day组合成一个日期几个时间函数TimeValue(strDate)返回用字符串形式表达的时间对应的实际时间如:TimeValue("18:35:17") 返回#18:35:17#Hour(time)、Minute(time)、Second(time)分别返回一个时间的小时、分钟、秒TimeSerial(hour,minute,second)将hour、minute、second组合成一个时间实例3设计一个程序,在eg3.xlsx的Sheet1中,若选择了一个不为空的区域时,弹出如下图所示的窗体,用户可为该区域设置填充色练一练打开各班期末成绩工作簿,自定义功能区:新建“期末成绩”选项卡,添加“VB”组编写过程,弹出如图窗口,选择不同的班级时,能将不同班级的成绩汇总并显示出来将编写的宏指派到“VB”组中的“汇总”按钮
本文档为【VBA编程及应用基础VBA编程及应用基础ppt课件(完整版)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
哟YOU
暂无简介~
格式:ppt
大小:4MB
软件:PowerPoint
页数:176
分类:
上传时间:2023-01-10
浏览量:20