分享

VBA的层级关系,程序、工作表、工作薄、单元格

 新华书店好书榜 2016-07-18


好多朋友由于是初级学习阶段,尽管小编每次推送都力求言简意赅,通俗明了,但是还是有很多朋友不明所以,so,明天开始,小编将以视频的形式把以前的文章为大家讲解,希望大家喜欢!



今天由于有几个程序要写,所以今天的文章就随便找点基本的入门知识给那些初学的朋友们,很简单,但是一定要弄明白!


Excel的层次构架,在一般图书或者论坛来说,讲完宏和VBE之后应该讲解数组和变量之类的东西了,但是我认为那些都是在后续慢慢实践过程中自然懂会的东西,所以对于变量我会以轻描淡写的方式带过,明白变量是何东西、怎么用就好了,所以不做长篇论述。从本篇我们着手vba的核心-appliction、workbook、worksheet、range(cell)。表示单元格的有很多种方法,本人只擅长使用这两个,所以只着重讲解这两个。

那么什么是在讲解这些东西之前,我们先来看看一张图,

这里的appliction是Excel的最高级别,就是Excel程序。Workbook是由appliction创建的一个工作簿,在Excel系统里第二层。Worksheet是workbook里面的一张表单,一般新建的工作簿内含三张表单,分别为sheet1/sheet2/sheet3。Range和cell就是表单里面的任意一个单元格,在Excel的最底层,也是由千万个这样的单元格组成的workbook。

如果看不懂没有关系,我们换另外一种理解方法。Appliction就可以看做中国的某一个省,workbook就是appliction省中的一个县,注意这个workbook只属于appliction省,如果同时有两个工作簿打开,就会有两个appliction省,新学习这里很容易混肴,一定要注意区分开来。接着worksheet就是workbook县里面的一个乡镇了,同样这个乡镇只属于workbook县,当然乡镇肯定会有很多个村子了,就是Range和cell了。上面我们在提到Range时还会连上cell,有人会问,省和县以及乡镇都是一个,为什么这里会有两个?不用着急,我在这里之所以把他们两个放在一起说,是因为乡镇下面的村子也可以用Range表示,也可以用cell表示,只是用法不同,下面我们就对这两个“村子”进行细致的讲解。(这里我采取的是逆顺讲解,也就是先从最顶层讲解,呵呵,这也是我学习的时候的方法,希望大家也能接受)

Range

   Range对象可能是VBA代码中最常用的对象,Range对象可以是某一单元格、某一单元格区域、某一行、某一列、或者是多个连续或非连续的区域组成的区域。下面介绍Range对象的一些属性和方法。其用法相当简单,就是()里面加上需要引用的单元格位置,比如,引用单元格A1,则写成Range('a1')即可。下面是range的一些属性以及方法,不是很全的,不过在平时使用中不是每个属性都要使用的,所以我们着重几个重点的属性和方法进行讲解。

了解了这些之后,我们就可以使用它来编写简单的程序了。


设置引用单元格为指定文字:


利用上次创建的按钮,双击然后编写代码:

Private Sub CommandButton1_Click()

Range('A1').Value = '我在学习VBA'

End Sub


我们可以看到,有按钮的的工作表的A1单元格里出现了“我在学习VBA”字符,这里我们使用的是range的value属性,value属性可以使引用单元格表示任意字符!其实按我当初的理解,value属性就是“值”的意思,注意,在引用单元格设置属性的时候文字必须要用单引号引起来,如果是数字则不用!

在这个按钮旁边再新建一个按钮,代码如下:

Private Sub CommandButton2_Click()

Range('A1').Font.Name = '仿宋'

Range('A1').Font.Size = 24

End Sub

可以看到,刚刚在单元格的字体变成了宋体,字号增大到了24,这里使用的是font属性,可以改变字体和字体大小还有下划线等,反正只要关于字体的都能设置!

由于篇幅有限,下面列举一些常用的有关range的方法和属性。

单元格颜色:

Private Sub CommandButton2_Click()

Cells(1, 1).Font.ColorIndex = 3 '字的颜色号为3 红色
Cells(1, 1).Interior.ColorIndex = 3 ' 背景的颜色为3 红色

End Sub

引用单元格位置:

Private Sub CommandButton2_Click()

Range('a2').Value = '单元格A1的位置是:行' & Range('a1').Row & ' ,' & '列' & Range('a1').Column

End Sub


这里使用的是range的Row和Column属性,也就是单元格所在的行和列,需要说明的是,column属性显示出来的是数字,并不是我们常见的A列;B列;C列.....数字1代表的是A,2代表B,3代表C......如下图:


range不仅可以代表某一个单一的单元格,也可以代表某一个区域,比如,你想引用A1到D17的区域,代码可以写成range(a1:d17),如下图:



如果你想清除单元格里面的内容,则要用到clear了,不过清除也有好几种方式:


比如你想把A1到D17的区域里的内容清除掉(注意,只是清除内容),代码可以写成:

range(a1:d17).clearcontents

具体的实用方法可以参考上面列表,这里不再鳌述!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多