【VBA教材】52.常用语句透析(二十六)
【VBA教材】52.常用语句透析(二十六)这篇文章的内容如下:
五十二 常用语句透析(二十六)
With语句在使用上极其简单,但初学者仍然可能会出现诸多问题,笔者也是在初期经历了多次的出错后才积累了一些应用经验。本节介绍With语句常见错误分析
With语句在工作中常见的问题主要表现在三个方面:
一 忘记写“End With”
当With与End With之间有很多行代码时,常常会忘记写End With,而造成如图52.1所示错误。
当然,这是未养成好的代码录入习惯所造成的,解决这个问题需要严格按照本书第9章中关于“配对语句的录入方式”所讲的方式进行。
二 End With放错了位置
当过程中除With语句外,还包括了条件语句或者循环语句等需要配对的语句时,有可能出现End With放错了位置的情况。
例如在以下过程中,With语句与IF语句共用,而End IF和End With两句的位置刚好错位,执行时会产生如图52.2所示的编译错误。
________________________________
Sub test()
With Range("A1")
IF .Value = 1 Then
Range("B2").EntireRow.Clear
.Value = .Value + 1
End With
End IF
End Sub
___________________________
图10.61忘记写End With的错误
图10.62 End With错位之错误
三. 里层With代码调用外层With对象的属性
当过程中有多个With嵌套时,引用对象是需要分层级的。如果需要调用外层的对象,必须完整地录入整个对象,而不能前置小圆点去引用。
例如以下过程中,在里层的With语句中调用单元格的Left属性时,不能使用前置小圆点,而需要完整的注明对象。代码中“MsgBox .Left”需要改为“MsgBox Range("A1").Left”。
_____________________________________
Sub Test()
With Range("A1")
With .Interior
MsgBox .Left
End With
End With
End Sub
________________________________
同理,如果在外层需要调用里层的对象时,也需要完整地注明里层对象。
本文地址:http://www.itfw5.com/office/WPS/10351.html
发表评论