欢迎来到天天文库
浏览记录
ID:38767436
大小:139.00 KB
页数:6页
时间:2019-06-19
《怎么编制表格》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、【VBA教材】16.单元格的表示法(一)作者:罗刚君 文章来源:wps 点击数:601 更新时间:2011-9-3 - 大部分对象都有多种表示方法,其中最复杂的,应用最广的自然是单元格对象。单元格的引用方式有多种,主要包括Range("a1")方式、cells(1,1)方式和[a1]方式、合集、偏移量、已用区域、当前区域、Resize、End等等方式本课时开始,利用多个课时对单元格的表示法进行讲解。本课时讲述Range("a1")方式引用单元格。用Range可以将文本型的单元格地址转化为单元格对象引用,类似
2、于工作表函数“INDIRECT”。它可以引用单元格、区域、整行、整列及整个工作表。16.1引用单元格Range引用单元格对象的方式为:单元格的列标加行号做为参数,且左右加入引号。例如:Range("A1")——表示A1单元格Range("C25")——表示C25单元格Range("Z65536")——表示Z65536单元格,Range("A1")本身是代表一个单元格对象,但在“MsgBoxRange("A1")”语句中则可以获取单元格的值。事实上“MsgBoxRange("A1")”是“MsgBoxRange("A1").value”的简写。
3、每个对象都有很多属性,同时也都有一个默认属性,而单元格的默认属性是“Value”,所以如果不明确指出属性时,那么一定是调用它的Value属性值。Range参数中的引号必须是半角状态下输入,否则必将产生编译错误。另一个需要重点是VBA中Range("A1")方式引用对象时是不区分相对引用和绝对引用的,不管使用Range("A1")、Range("$A1")、Range("A$1")还是Range("$A$1")都引用同一单元格,而且在循环中也不产生任何影响。所以为了简化,通常只用Range("A1")这种形式来引用单元格。16.2引用区域Ran
4、ge引用区域时是利用区域左上角单元格地址加冒号再加右下角单元格地址为其参数。不过参数也可以写成右下单元格地址加冒号再加左上角单元格地址,VBA会自动将其转换成左上角单元格地址加冒号再加右下角单元格地址的形式。例如以下两种方式引用区域都可以得到相同结果:MsgBoxRange("A2:D1").AddressMsgBoxRange("D1:A2").Address以下是一些合法的区域引用:Range("A1:V10")——代表从A1到V10的矩形区域,包括220个单元格Range("F2:F10000")——代表从F2到F10000的矩形区域,
5、包括9999个单元格Range("D2:Z10000")——代表从D2到Z10000的矩形区域,包括229977个单元格区域的默认属性也是Value,但是区域的Value是一个数组,包括多个对象,VBA中无法直接将其显示在屏幕上。如果利用Msgbox来显示这个属性值将得到一个运行时错误,例如图16.1:图16.4引用区域默认属性时产生运行时错误正确的方式是逐个引用区域中单个值。通过索引号做参数来实现。例如:Range("D2:Z10")(1)——代表D2:Z10区域中第一个单元格的Value,即D2Range("D2:Z10")(3)——代表
6、D2:Z10区域中第三个单元格的Value,即F2Range("D2:Z10")(24)——代表D2:Z10区域中第24个单元格的Value,即D3也就是说,索引号代表区域中从左到右、从上到下的序号,它是区域左上角单元格的参照进行相对引用。如果索引号为小数时,VBA会自动对其进行四舍五入。如:MsgBoxRange("D3:E7")(1.5).Address——结果为“$E$3”,参数1.5当做2处理MsgBoxRange("D3:E7")(4.4).Address——结果为“$E$4”,参数4.4当做4处理事实上,索引号可以使用两个参数,第
7、一参数表示行的索引,第二参数表示列的索引。那么参数“(4,5)”就可以引用区域中第4行第五列的单元格,它以区域左上角单元格为参照,而非工作表中A1单元格为参照。例如以下的引用:MsgBoxRange("D3:F7")(1,3).Address——结果为“$F$3”,表示D3:F7区域第一行第三列MsgBoxRange("D3:F7")(4,2).Address——结果为“$E$6”,表示D3:F7区域第四行第二列MsgBoxRange("D3:F7")(9,4).Address——结果为“$G$11”,即D3向下偏移九个单位,再向右偏移四个单
8、位。虽然其行数与行数都已超过区有区域的大小,仍然可以正确的引用单元格ET中区域的参数不可以使用0和负数,仅仅Excel中支持这种写法。Range的参数也支持表达式,
此文档下载收益归作者所有