ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yagi2008

[分享] VBA入门指南——献给在这里得到帮助但看不懂代码的朋友(已建电梯)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-1-21 14:49 | 显示全部楼层

期待

本帖已被收录到知识树中,索引项:开发帮助和教程
楼主讲得很太棒啦,以前也学过java当时一知半解,类什么的太多啦感觉,一编程序就晕啦,楼主这一讲又对面向对象深入了解,期待下面的更精彩
最后十分感谢,正学vba做毕业设计呢

TA的精华主题

TA的得分主题

发表于 2009-1-21 16:21 | 显示全部楼层
等待

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-1-21 17:04 | 显示全部楼层

【2009.1.21】代码起步——关键字(续)

  昨天刚洗了车,今天就下雨了,哎,天意弄人~~“今年春节怎么过?出门嘛?”最近听得最多的就是这句话,不管是经济危机的影响还是交通拥堵一票难求的作用,今年明显出门的人少了许多,昨天偶然听到了广播里张信哲的《逃生》,其中一首“牡丹忧”让我想起了父母,立马跑去买了龙井和翡翠的平安扣,晚上看着嘴上埋怨却掩饰不了脸上高兴的父母,总算心安了一些。不管什么借口,今年在家陪陪爸妈吧!所谓“娘生儿,连心肉;儿行千里母担忧;儿思娘亲难叩首;娘想儿来泪双流......”
  言归正传,继续昨天的话题,让我们来看看第二类关键字——控件,先列表如下:
  【控件类关键字】
  标签(Label):用来显示文本。
  文本框(Textbox):用来提供给用户输入文本。
  命令按钮(CommandButton):用来组织和提供程序功能。
  列表框(ListBox):用来提供给用户选择列表中的数据。
  组合框(ComboBox):用来提供给用户下拉选择列表中的数据。
  选项按钮(OptionButton):用来提供给用户指定单项数据,一般成组使用。
  复选框(CheckBox):用来提供给用户指定多项数据,一般成组使用。
  先来说说,什么是控件,顾名思义,控件就是提供给用户控制程序运行的组件。回忆一下,以往我们用过的程序很多,都用过哪些控件呢?可能之前都没有注意,但现在既然要做程序给别人用,就得注意了。我们看到,一般在我们打开的窗口上,都会有些文字,这些文字只是提供了一些信息,比如告诉你这里是输入姓名的,那里是选择性别的等等,这些文字用户并不能修改或删除,那么这些文字是不是就是写在窗体上的呢?不是,窗体只是一个容器,里面是空的,就像不能在空气里写文字一样。VBA给我们提供了一个可以写这些文字的控件,我们给它一个名字叫“标签”,E文叫“Label”。从我们上面描述的文字可以总结出标签控件的特点和作用:无法修改,主要用于显示提示信息。这是第一个控件。
  第二个控件叫做“文本框”,E文叫做“Textbox”。这个控件和标签有点类似,也是放文字的,但这里的文字是让用户输入的,而不是显示给用户看的,所以我们把文本框的特点和作用做个总结就是:可以提供用户文字编辑功能,主要用来供用户录入文字信息供程序处理或存入数据库。
  第三个控件叫命令按钮,E文叫“CommandButton”。这个控件的作用不用我多说了吧?当你之前每次用鼠标点击按钮,你可曾想过,为什么这么多按钮会有各种各样不同的功能?按钮除了能单击还能双击嘛?按钮的作用是在按下的时候发生还是放开的时候发生呢?所有这些问题的答案都在于事件是如何写的。按钮提供了单击、双击、按下、放开等事件,如果代码写在了按钮的某个事件里,那么在用户做出相应动作以后就会触发执行这些代码。
  第四个控件叫列表框,E文叫“ListBox”。这个控件的外观,像一张一维表格(只有列标题)。这个控件的作用除了可以提供给用户一些整齐的列表信息外,还可以通过选中、单击、双击等事件,实现用户选择标准化录入的效果。
  第五个控件叫组合框,E文叫“ComboBox”。这个控件比较灵活,有三种形态。第一种是下拉列表的形式,主要提供给用户选择列表里的值,用户的选择只能限于下拉列表提供的内容,不能自己输入,并且选择只能是单选。第二种是用户除了可以选择下拉列表提供的内容外,还可以输入自定义的内容,即兼具了文本框和下拉列表框的作用。第三种是用户可以对下拉列表框提供的内容进行复选。组合框是比较常用且功能较为强大的控件之一。
  还有两个控件,一个叫选项按钮,就是我们平时说的单选按钮,另一个叫复选框,这两个控件经常被成组提供,主要让用户选择某些项目,而避免了文本框的不规则文本录入的问题,达到了录入结果标准化的效果。
  说了这么多控件,还没看见呢!?别急,下面就告诉你怎么添加控件。如图( 1.jpg )单击“控件工具箱”工具栏中的某一个控件按钮,然后在SHEET表上就可以按住左键拖动鼠标勾画出某种控件,就这么简单。画好了,看到了,可没任何作用啊?呵呵,接下来就是要给这些控件“赋予生命”了。
  再次看到“控件工具箱”工具栏,从左数第一个按钮(如图: 2.jpg ),这个按钮的作用是进入设计模式和退出设计模式,如果在非设计模式下,那么对于你添加的控件就会按照你所定义的事件代码触发执行,如果要编辑这些按钮,就必须确保这个切换设计模式的按钮处于被按下的状态,这时候就进入了设计模式,这时对上述你添加的控件进行操作就不会触发你定义的事件代码,就可以提供给你编辑修改这些控件属性和代码的机会。请确认切换设计模式按钮处于按下状态,双击你添加在当前工作表中的任何一个控件,你就能看到自动打开了VBA编辑窗口,并生成了与被双击控件关联的一个事件,当前光标正在这个事件过程中一闪一闪的等你呢!请把目光移到代码编辑窗口的最顶端的两个下拉列表框那里(还记得前面讲的叫什么名字嘛?),左侧的下拉框显示的是当前控件的名称,右侧下拉框显示的是该控件的默认事件,(如图: 3.jpg )比如文本框,默认名称为“TextBox1”,默认事件为“Change”,这个事件表示当文本框内容发生变化的时候被触发执行。你可以下拉右侧的列表框,你会发现,和当前控件关联的事件有很多,至于如何用我们下面会逐个讲解。现在请重新回到SHEET1工作表界面,再重新选择另外一类控件,添加这个控件并双击进入编辑窗口,看看和这种(比如命令按钮)控件关联的事件有哪些?至此,知道如何给控件添加代码了嘛?
  还有个小问题,你考虑过为什么这里出现的控件名称都是一样的,只是在最后添加了数字以示区别嘛?因为你没有修改控件的名称,所以就只能用默认的名称咯。其实每个控件都有名称,因为每个控件都是对象嘛!所以,设置控件的名称就是设置控件对象的一个属性。除了名称属性外,常见的还有哪些属性呢?我在这里讲一个查看属性的方法,大家不妨自己去看看各类对象的属性。所谓“师傅领进门,修行在个人”嘛!上面提到的“控件工具箱”工具栏还在吗?刚才讲了从左边数第一个按钮的作用,除了各类控件外,还有2个按钮,也就是从左边数第2个和第3个按钮没用过,你一定猜出来了,不错,第二个按钮是打开属性对话框的(如图: 4.jpg ),点了这个按钮就可以看到当前选中对象的属性,而第三个按钮则和双击某个控件一样,是打开代码编辑窗口的。
  最后,我想结合一个实例讲讲常见控件的常见属性和事件。(实例: 例2.rar (9.07 KB, 下载次数: 4278)
  一般控件常见属性主要有如下几个:Enable,取值为逻辑值,通过设置该属性可以决定控件当前是否可用;Visible,取值为逻辑值,通过设置该属性可以决定控件当前是否可以被显示出来。对于标签控件,常见属性就是Caption属性,取值为文本,该属性决定了标签当前显示出来的文本。对于文本框、列表框、组合框控件,常见属性有Value属性,取值为文本,该属性决定了文本框、列表框和组合框的内容,可读写。对于命令按钮控件,常见属性有Caption属性,取值为文本,该属性决定了按钮当前显示出来的文本。
  接下来,大家新建一个空白的EXCEL文档,在Sheet1工作表中,依次添加标签、文本框、命令按钮各一个,如图: 5.jpg 。设置标签控件的名称属性为:Lbl_A1;Caption属性为“A1单元格的值:”;文本框控件的名称属性为:Txt_A1;命令按钮控件的名称属性为:Cmd_A1;Caption属性为“读取”;接着,双击命令按钮控件,打开代码编辑器窗口,并在Cmd_A1_Click()事件中,添加如下代码:Txt_A1.value = Cstr(Sheet1.Range("A1").value)。保存后,回到Sheet1工作表编辑界面,单击控件工具箱的左侧第一个按钮,即退出设计模式。这时候,在A1单元格输入一个值后,只要按一下命令按钮,在文本框中就会出现A1单元格的值。
  由于时间关系,今天只是简要的讲述了一些常见控件的常见属性、方法和事件,至于其他一些控件和大家以后遇到的新的控件的属性、事件和方法,可以参照我上面讲述的过程和方法自己去学习、练习和使用。
  明天继续。

[ 本帖最后由 yagi2008 于 2009-1-21 17:05 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-1-21 17:38 | 显示全部楼层
提前祝yagi2008新年快乐!您每次精彩的讲解,都挺辛苦啊!强烈建议版主给楼主加分鼓励表扬!!!!

TA的精华主题

TA的得分主题

发表于 2009-1-21 17:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
祝yagi2008新年快乐,感谢您的分享!强烈建议版主加分鼓励!!!!!!!!!!

还以为没发成功呢,重复了。

TA的精华主题

TA的得分主题

发表于 2009-1-21 19:29 | 显示全部楼层
同意,举双手赞成!楼主辛苦了!太好了,希望能给我们一直讲下去,把这个当成培训班来,每天讲一节课。我永远做您的学生。

[ 本帖最后由 pswxm 于 2009-1-21 20:09 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-1-22 04:08 | 显示全部楼层
呵呵,天天学习 天天向上.
祝老师新春愉快!!!!!!

TA的精华主题

TA的得分主题

发表于 2009-1-22 13:46 | 显示全部楼层
什么时候还有啊,正看的模模糊糊

TA的精华主题

TA的得分主题

发表于 2009-1-22 14:34 | 显示全部楼层
楼主,你这个写完了,能不能专出一电子书啊,好下来看。

TA的精华主题

TA的得分主题

发表于 2009-1-22 16:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
继续!强烈建议斑竹再加分!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-5 04:53 , Processed in 1.084886 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表