excel图表VBA神奇的句点

作者&投稿:巴溥 (若有异议请与网页底部的电邮联系)
~

阳光花园是一个很大的住宅小区,布置有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

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




ifix 中如何做报表并打印
没用过ifix,你可以将专门的报表软件嵌入进去,然后用专门的报表软件做报表。我知道FineReport报表可以嵌入很多软件系统,并且报表打印时就是直接点击按钮完成的。

Excel2003\/2007数据透视表的图书目录
9.2 数据透视图的结构及与常规图表之间的区别9.2.1 数据透视图的结构9.2.2 数据透视图与常规图表之间的区别9.3 利用数据透视图分析数据9.3.1 查看不同...Chapter 11 Excel 2007数据透视表与xcel 2003数据透视表的区别11.1 创建方法不同11.2 布局方法不同11.3 自定义Excel 2007数据透视表更简便11.4 Excel 2007...

EXCEL中下拉选框切换
比如我一堆数据,有表格汇总,图表分析,想用一个下拉框中两个选项来切换。... 在EXCEL2007中如何做一个下拉选框,切换几个不同的表格出来?比如我一堆...xcel表格的35招必学秘技也许你已经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel也不过如此,甚至了无新意。

洋县14768595162: 怎么用vba抓取excel表格中的数据 -
广瑞安利: 你的问题太大了,因为VBA在excel就是抓数据、计算数据的,要看你具体怎么抓.比如抓取特定字段数据,应该用到三个字符串函数:LEFT、RIGHT、MID 1、LEFT函数: 用法:LEFT(要提取字符所在单元格,从左侧开始提取的个数) 例如...

洋县14768595162: vba 在excel中做条形图 -
广瑞安利: 步骤:1、建立一张数据表 2、插入条形图(通常会自动选中数据区域,如果区域不对可以人为调整) 3、对图形的格式等进行设置 例如下图:

洋县14768595162: excel如何保持图表位置始终不变(可用vba) -
广瑞安利: 如将图标1对齐到G10单元格: Sub A() Dim x As Double, y As Doublex = Range("G10").Left y = Range("G10").TopSheet1.Shapes("图表 1").Left = x Sheet1.Shapes("图表 1").Top = y End Sub

洋县14768595162: 怎么在excel的图表上找到一个点的坐标( 非原数据的点) -
广瑞安利: 请教有关EXCEL问题:以下为你用if函数试一下,应该可以实现. 用vba试试,思路大概是这样的,先

洋县14768595162: 问题:excel中的图表导入到VBA的用户窗体.网上查了几个,很奇怪Chart.Export说我方法或成员未找到 -
广瑞安利: ①把Excel已经制好的图用QQ等截图;②再粘贴或插入到VBA中去!

洋县14768595162: excel中用vba判断表格的位置和范围 -
广瑞安利: 先选中这些表格所在的全部单元格,然后给它们起一个名字(就在左上角显示单元格名称的地方填上你认为适合的名字,如“mytable”),在VBA中用range(mytable)来定位

洋县14768595162: excel中用vba语句对每一行数据都生成折线图怎么实现??? -
广瑞安利: for i=4 to 1000 ActiveChart.SetSourceData Source:=Range("Sheet1!$A$" :$AI$" & i)next i...

洋县14768595162: 求一个excelVBA的程序代码,能够根据excel里的实验数据做出图形,并能写出相应的表达式
广瑞安利: 其实不需要VBA代码照样可以实现,将表示X轴的数据放在A列单元格,将表示Y轴的数据放在B列单元格.在数据区域中任意单击一个单元格,插入图表,图表类型选择XY平滑散点图,然后单击图表区的曲线,鼠标右键选择添加趋势线,选择线性,选择显示公式等选项,即可.

洋县14768595162: vba 如何用代码设置Excel中的图表 X轴坐标轴文字 方向 即 如何用代码完成如下设置 (录宏后没有代码显示 -
广瑞安利: With ActiveChart.Axes(xlCategory).TickLabels.Alignment = xlCenter.Offset = 100 ' 这个是文本与轴线的偏移量.ReadingOrder = xlLTR ' 这个是文字方向,xlRTL(从右到左)、xlLTR(从左到右).Orientation = 52 ' 这个是文本的旋转角度End With

洋县14768595162: excel画图vba包络图 -
广瑞安利: 方法/步骤 如图,绘制给定数据的折线图.给节点加箭头,如图,先选中折线,右键单击,选择--设置数据系列格式 选择--数据标记选项--内置--类型--选择箭头即可.改变折线的线型,比如,改直线为虚线.选择--格式--形状轮廓--虚线.还有,改变折线的颜色,粗线等等,都可以在--格式中进行调整.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网