excel - VBA基础入门 - 图文(3)

2019-08-29 21:47

10.jpg (30.07 KB)

当然,你打开后的窗口不一定和上面一样,VBE的窗口也不只上面几个,我们可以打开?视图?菜单,在里面进行选择需要显示的窗口。

对象、属性、方法,事件

==============

这是很重要的几个概念,是写VBA程序的基础,大家仔细读,一定要弄清楚。 1、对象及对象层次结构

对象就是存在的东西,是VBA处理的内容,包括工作薄、工作表、工作表上的单元格区

域、图表等等。对象可以相互包含,就像一个文件夹里可以包含多个文件夹一样,而这个文件夹又可以被其他的文件夹包含,一个工作薄对象可以包含多个多个工作表对象,一个工作表对象又可以包含多个单元格(或图表,图形等),这种对象的排列模式称为Excel的对象模型。 ----------

集合这个概念经常遇到,我理解的集合是对相同类型的对象的统称。

某中学有5000个学生,名字各不相同,我们对他都统称为某中学的学生,而不和一一去叫他们的名字,\某中学的学生\在这里是集合。

对象的引用,在Excel里,Workbooks集合包含在Application对象里,当我们要引用某工作薄的时候,要遵循从大到小的规则。跟表示硬盘里的某个文件的位臵一样,比如我们想引用D盘?我的文档?文件夹下的名为?我的VBA课程.doc?文件时要输入的是: D:\\我的文档\\我的VBA课程.doc

同样,如果我们要引用名称为?mybook.xls?的工作薄时就是: Application.Workbooks(?mybook.xls?) 和引用文件不同的是,VBA里使用的分隔符是点。

同理,当我们引用?mybook.xls?里面的工作表?mysheet?时应是:

Application.Workbooks(?mybook.xls?).Worksheets(?mysheet?)

可以继续延伸到下一层,引用?mybook.xls?里工作表?mysheet?里面的单元格区域?A1:D10?:

Application.Workbooks(?mybook.xls?).Worksheets(?mysheet?).Range(?A1:D10?) 但是并不是每一次引用都必须这么呆板,就像猪八戒不用每一次都去爬下水管道。如果我们引用的是活动对象,也就是被激活的对象,引用就可以进行简化。 如果是mybook工作薄是激活的,引用可以简化为 Worksheets(?mysheet?).Range(?A1:D10?)

如果mysheet当前也是激活的,引用甚至还可以简化为Range(?A1:D10?),也可以直接输入[A1:D10],如果引用的单元Range是单个的单元格,还可以用Cells(行号,列号)的引用方式。

------------------------------------------------------- 2、属性

每一个对象都有属性,一个属性就是对一个对象的一个设臵。 猪八戒背着媳妇高秀兰回自己的紫云洞,猪八戒的媳妇就是对象,?高秀兰?就是猪八戒的媳妇的一个属性(name属性),引用对象的属性同样也要用点来分隔。 猪八戒的媳妇.name=高秀兰

别闲着,还是动动你的右手,打开一个工作表,Alt+F11(千万别说你不知道这个快捷键是干什么,要不我保证被你气个半死),如果立即窗口没有打开,按Ctrl+G打开,在里面输入:

复制内容到剪贴板 代码:

Msgbox Worksheets(1).name 回车。

1.jpg (53.4 KB)

Worksheets(1)和Worksheets(?sheet1?)有什么区别? Worksheets(1)表示Worksheets集合里的第一个工作表。

Worksheets(?sheet1?)表示Worksheets集合里名为\的工作表。

至于Msgbox是什么,那就自己问Help了,在立即窗口里用鼠标左键把Msgbox抹黑,按F1,就弹出Help里对它的说明了。 抹黑代码,再按F1即可看到相应的帮助。叶枫说:?这个办法很适用,一般人我不告诉他。?

2.jpg (42.52 KB)

一个对象有哪些属性我们可以在属性窗口里查看,要修改一个对象的某种属性,如名称、显示状态、颜色等等,也可以在属性窗口里进行修改,当然我们还可以利用代码进行修改。改当前工作薄里的第三个工作表的名称为?这个名字是我用VBA改的?,想想怎么写代码? 把你的代码输在立即窗口里,回车,看看效果,你做到了吗? ------------------------------------------------------- 3、方法

每一个对象都有方法,方法就是在对象上执行的某个动作。

和属性相比,属性表示的是对象某种状态或样子,是静态的,就像是语文里的名词、形容词和副词,而方法则是做某件事的一个动作,就像动词,对象和方法同样用点来分隔。 例如Range对象有有一个方法是Select,他的作用是选中指定的Range(单元格区域)对象,在立即窗口里输入代码:

回车,可以看到D1:F10已经被选中了。

3.jpg (36.23 KB)

------------------------------------------------------- 4、事件

在上一面猪八戒按门铃那里,我们已经接触过什么是事件了。

简单点说,事件就是由用户或者系统触发的,可以在代码中响应的一段代码。比如,当我们移动鼠标,打开工作薄,激活工作表,选中单元格,改变单元格的数值,点击按钮或窗体,敲击键盘等等这些都会产生一系列的事件,通过编写代码响应这些事件,当发生此类事件时,程序代码就会进行相应的操作。

这样解释你会不会有些晕?感觉又一次进入了外星人的世界?还是举例说明,我们需要当激活某工作表的时候,自动弹出一个对话框,告诉我们激活的工作表的名称。

(1)打开一个工作表,Alt+F11打开VBE窗口,在?工程对象管理器?窗口里双击你要进行设臵的工作表,使其代码窗口显示。

(2)左面选择对象Worksheet(工作表对象),右面选择Activate事件,我们可以看到在代码窗口里系统已经为我们自动输入了一段代码。 复制内容到剪贴板 代码:

Private Sub Worksheet_Activate() End Sub 引用:

提醒: 初学的我们,不必完全记住对象及事件的名称,也不必手工输入,系统早为你准备好了,你可以在代码窗口里进行选择,左边是对象,右面是事件,如果你想知道某个对象(例

如工作薄、工作表、窗体等)有哪些事件,只需要双击这个对象,然后在代友窗口里查看即可。我们需要做的只是:当自己需要它的时候,知道打开哪个箱子把它拿出来即可.

4.jpg (47.51 KB)

废话说完,再回到问题里:

要达到问题的目的,我们只需要在已给我们列出的两段代码中间加入需要进行操作的代码就可以了,这里我们需要的是一个对话框来提醒,对了,还记得Msgbox吧? 输入代码: 复制内容到剪贴板 代码:

MsgBox \你现在激活的工作表名称是:\上面的代码相信你应该能看懂吧?

&和我们工作表里的函数是一样的,连接文本的作用,Activesheet.name是当前活动工作表的名字(用了一个name属性)。

回到工作表,激活你刚才设臵代码的工作表,如果你刚才设臵的工作表是激活状态,请选择其他工作表,然后再重新激活它,看看你看到了什么?

5.jpg (34.5 KB)


excel - VBA基础入门 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016-2021年中国金花米黄抛光砖行业市场调研及战略投资预测报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: