智能进销存软件:革新现代库存管理
162
2023-11-07
【摘要】 本书摘自《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》一书中第3章,第4节,韩小良著。
3.4.2 With 语句的嵌套: With 语句的子对象
无言:代码3-30虽然看起来短了不少,但其实还是有点长了。我们现在是统一购票进门, 但是人还是有点多,还是需要排好队,大人牵着自己小孩的手进门更好。
代码3-30虽然比代码3-29中精短了不少,但其实代码3-29中还有2层对象——一个是 Range("A1").CurrentRegion连续区域对象,另一个是定位后获取单元格对象,这里就拆分了2 层对象,对于同一对象下的下层对象也可使用With语句进行嵌套,就像大人牵着小孩的手进场 一样。
With…End With 语句的嵌套方式如图3-43所示。
With 第1层对象
With.第2层对象(该层对象必须包含在上一对象之下,即子对象)
中间语句
WithO 进n 层对象《该层对象必油包含在上一对象之下,削子对象)
中间语句
End #ith—n层结束语句
End With
制接上一莹的对象mth 的 当
前讨象前都必绩有一个-;作
为引用土一级前时象前标乐”
With .第2-n层对象(该层对象必幼包含在上一对象之下,即子对象)
中间语句
End With‘第n层结束语句
第1层中间语句
End With '第1层结束语句
无言: 图3-43中列明了With语句的嵌套方式,在嵌套引用上一层对象时,在当层对象和
With之间必须要用。把上层的对象关联起来,否则也将出现处理对象不当的错误,即上下对象 无关联,如下所示。
With Range("Al")
.VerticalAlignment =True
.HorizontalAlignment =True
.Interior.Colorlndex =20
With Font
.Colorlndex =3
End With
With.Borders
.LineStyle =1
.Colorlndex =3
End With
End With
上面示例红色部分由于没有指明上一层的对象为A1 单元格,而只是指明了当前层要使用 的对象为字体,此时Font的父对象为空,而无法对A1 单元格的字体颜色设置,此语句变为无 效语句。
无言:在使用多层嵌套With对象时,内层对象前都必须要有圆点(.)来标示它们的层级 关联。更多层的With嵌套时,建议先把当前层的语句外壳书写完整后,再缩进书写内层嵌套语 句,防止由于层次过多造成纰漏。
皮蛋:明白了,那继续单元格定位设置的代码吧。
无言:将刚才的示例修改为如下:
并根据上面对象层次关系将With 引用分为两部分,修改后的如代码3-31所示。
1|Sub LongToBriefCode020
21 With Rows(1)'第1行的范围
3| With.SpecialCells(xlCellTypeConstants,23)‘定位常量的区域
4| .VerticalAlignment =xICenter 垂直居中
51 .HorizontalAlignment =xICenter '水平居中
6| End With
7| End With
8| With Columns(1)'第1列范围
9| With SpecialCells(xlCellTypeConstants,23)“定位常量的区域
10| .VerticalAlignment =xICenter 垂直居中
11 .HorizontalAlignment =xlCenter '水平居中
End With
End With
With Range ("Al").CurrentRegion
With .SpecialCells(xICellTypeConstants,23)
.Font.ColorIndex =3
.Interior.Colorlndex =20
End With
With.Borders
.LineStyle=1
.Colorlndex =3
End With
End With
End Sub
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。