excel图表VBA 神奇的句点

时间:2023-01-03 01:29:46 

阳光花园是一个很大的住宅小区,布置有25栋楼房,每栋楼由高18层的4个单元楼组成,每个单元楼住有2户,每户按楼层编有门牌号。梦梦同学住在9栋4单元601室。

今天,老师要到梦梦家里家访。进入阳光花园小区后,老师要先找到9号楼,再找到4单元,乘座电梯到6楼,找到601室,就到了梦梦家里。

简化一下表示,我们用句点来代替图中的箭头号,那么找到601室就可以表示为:

阳光花园.9号楼.4单元.601室

那么,在Excel VBA中,我们怎么才能找到工作簿Book1.xlsm中的工作表Sheet1中的单元格A1呢?经过前面的系列介绍,我们知道单元格A1在代码中的表示为:

Range(“A1”)

而工作表Sheet1属于Worksheets集合,在代码中的表示为:

Worksheets(“Sheet1”)

工作簿Book1.xlsm属于Workbooks集合,在代码中的表示为:

Workbooks(“Book1.xlsm”)

根据Excel对象层次模型,我们要找到单元格A1,就要经过下所示的路线:

同样,我们用句点来代替图中的箭头号,那么在VBA中找到单元格A1可以表示为:

Application.Workbooks(“Book1.xlsm”).Worksheets(“Sheet1”).Range(“A1”)

实际上,这就是VBA中引用对象的方式,即通过使用句点层层限定直至达到要引用的对象。

由此,我们引出VBA中引用对象的一条规则:

规则1:对象.(对象…对象).对象

在对象模型中,处于被引用对象上层的对象位于左侧,被引用的对象位于最右侧。

实际上,我们通常就是在Excel中操作,所以可以省略掉Application对象限定,即引用单元格A1的代码可以简化为:

Workbooks(“Book1.xlsm”).Worksheets(“Sheet1”).Range(“A1”)

如果我们只是在工作簿Book1.xlsm中操作,将该工作簿作为当前工作簿,那么代码可以进一步简化为:

Worksheets(“Sheet1”).Range(“A1”)

如果工作表Sheet1为当前工作表,代码不会应用到其它工作表中,那么代码再次简化:

Range(“A1”)

这代表在当前活动工作簿中的当前工作表中的单元格A1。

这就好比我们都在一个办公楼里工作,当你问我现在在哪里时,如果我正在601室,那么我只需回答在601室就够了,因为大家彼此都知道,而无须回答我在××区××写字楼××层××室这么繁锁了。

由此,我们又可以引出VBA中引用对象的一条规则:

规则2:若对象就是当前对象,则可以省略句点左侧的对象限定,简化代码。

注意规则的前提是,我们引用的对象就是当前活动对象,如果不是当前活动对象,就会产生不想要的结果或错误[jf1] 。例如,当前活动工作表为Sheet2,而我们要找的是工作表Sheet1中的单元格A1,此时,如果只写代码:

Range(“A1”)

它代表的是工作表Sheet2中的单元格A1。要找到工作表Sheet1中的单元格1,必须在左侧加上限定:

Worksheets(“Sheet1”).Range(“A1”)

省略Application对象限定

在编写代码时,对于Application对象的那些返回对象的属性,我们常常省略掉Application对象限定,例如前面的文章中的ActiveWorkbook属性、ActiveWindow属性、ActiveCell属性、Cells属性、Selection属性、Rows属性、Columns属性,等。只需要直接以属性开头进行引用,例如,代码:

ActiveCell

代表当前活动工作表中的活动单元格。

标签:Excel函数,excel函数公式,excel表格制作,Excel教程
0
投稿

猜你喜欢

  • Snipaste启用窗口阴影功能教程

    2022-05-13 20:19:16
  • Win11小组件怎么删除 Win11小组件删除教程

    2022-10-19 14:28:43
  • 如何使用PE安装windows 11系统教程

    2023-02-23 19:55:47
  • Win10系统安装最低配置是什么?

    2022-12-11 01:59:53
  • 百度输入法如何强力卸载

    2023-10-08 13:08:37
  • Win10系统磁盘100%卡死怎么办?Win10磁盘100%卡死的解决方法

    2022-02-03 09:55:57
  • 微信状态为什么消失-微信状态微信状态持续多久详细介绍

    2022-06-23 10:45:31
  • Win10 9926安装应用商店应用提示错误0x800706d9怎么办?

    2023-02-11 21:30:07
  • Win10电脑如何设置存储感知和删除临时文件?

    2022-07-17 20:12:27
  • Win10 1909锁屏界面怎么关闭?Win10 1909锁屏界面关闭方法

    2023-12-06 20:42:11
  • Windows7系统禁用传感器的方法

    2023-11-27 18:32:30
  • ​火绒安全软件怎么解决电脑卡顿

    2023-11-20 01:03:28
  • Win7系统新建文件夹的快捷键是什么?

    2022-04-13 18:07:42
  • ppt尺寸大小怎么设置?PPT幻灯片页面大小设置方法详解

    2023-02-16 21:43:15
  • Epic Games怎么调中文?Epic Games调中文的方法

    2023-01-28 18:44:37
  • wps怎么设置透明色?WPS中将图片某个区域变透明的教程

    2022-03-22 04:38:10
  • Win8系统如何使用BitLocker给文件夹加密?

    2023-08-04 09:25:41
  • word文档的圆圈内如何更改数字?word编辑圆圈中数字的方法

    2022-09-14 16:01:20
  • Win10专业版的鼠标dpi数值怎么设置?Win10调鼠标dpi的方法

    2023-11-15 13:02:53
  • windows无法启动WLAN AutoConfig错误代码1068的解决办法

    2022-03-18 00:42:30
  • asp之家 电脑教程 m.aspxhome.com