郑州电脑维修 Win7粉丝 网站地图
您的位置:IT服务网办公软件WPS浏览正文

【VBA教材】51.常用语句透析(二十五)

2011-11-14 17:01:00 浏览次数:0 评论 0

【VBA教材】51.常用语句透析(二十五)这篇文章的内容如下:

五十一 常用语句透析(二十五)

通过前面章节的分析,With语句对程序简化与提速都很重要,那么现在对其语法进行详细的分析,便于读者理解并应用到工作表中去。

With语句的语法如下:

With Object

[statements]

End With

其中object代表一个对象,而且必须是对象。例如以下语句中:

_______________________________________

Sub test1()

With [a1]

MsgBox .Value

End With

End Sub

_________________________________

以上过程可以获取单元格对象A1的值。但是对With的对象改用表达式则不符合规则。例如:

________________________________

Sub test2()

With [a1] + [a2]

MsgBox .Value

End With

End Sub

在以上过程中,“[a1] + [a2]”是一个可计算的表达式,不是对一个对象。所以执行程序时会弹出运行时错误。

而statements是可选参数,表示要执行在 object 上的一条或多条语句。通过它包括了object对象中的某个属性。而且必须要包括某个属性,否则代码就失去了With的意义。

每个对象都有一个默认属性,在引用时可以忽略不写。但在With与End With语句之间的执行语句中调用默认属性必须指明,否则无法正常引用其属性值。

例如前面的test1过程中单元格A1的默认属性值就是Value,而代码中的“MsgBox .Value”却无法忽略“.Value”部分。

With也可以嵌套使用,两层或者十层皆可。每层都需要有各自独立的对象和属性,外层不能调用里层对象属性,里层也不能调用外层对象的属性。但在里层中声明对象时却可以调用外层对象。例如在以下过程中,With有两层嵌套,而里层有两个With语句并列:

_______________________________________

Sub With嵌套()

With [A1]'外层With,对象是单元格

With .Font '里层With,对象是字体,它同时调用了外层的对象

.Italic = True '里层With的执行语句,表示字体倾斜

.Bold = True

' MsgBox .Value'执行这一句一定会出错,因为此处只能调用里层对象的属性,而Value属于外层

End With

With .Interior '里层With,对象是单元格的内部属性

.Pattern = xlSolid ''里层With的执行语句

.PatternColorIndex = xlAutomatic

.Color = 65535

'.Name = "宋体" '执行此句也会出错,因为字体名称属性必须在前一个With语句中才可以调用,

'如果此处一定要调用,那么需要指明其上层对象,例如改用:.Font.Name = "宋体"

End With

End With

End Sub

_______________________________________________

读者可以仔细比较三个With语句的用法。

With语句相对于条件语句和循环语句在使用上更简单,但也有必要通过几个实例来加深读者对With语句的理解程度。

1.页面设置

_______________________________________________

Sub 页面设置并预览()

With ActiveSheet.PageSetup

.PrintArea = ActiveSheet.UsedRange.Address(0, 0)

.RightFooter = "&T"'页脚右边显示时间

.CenterHorizontally = True'居中

.CenterVertically = False '居中

.PaperSize = xlPaperA4 'A4纸

.FirstPageNumber = xlAutomatic'纸张"自动

.Zoom = 100'缩放等于100%

End With

ActiveWindow.SelectedSheets.PrintPreview '进入预览状态

End Sub

________________________________________

以上代码中通过With 对ActiveSheet.PageSetup的重复应用进行了简化.不仅在写法上更简单,执行效率上也会有所提高.

2.新建工作表且命名\设置标签颜色

__________________________________

Sub 新建工作表并命名设置标签颜色()

With Sheets.Add ‘新建工作表

.Name = "汇总表" ‘重命名

.Tab.ColorIndex = 3 ‘修改颜色

.Move before:=Sheets(1) ‘移到最前面

End With

End Sub

__________________________________

以上代码中With用于表示一个新的对象,通过WITH可以让程序是中不再使用变量.如果改用对象变量来实现,那么代码如下:

__________________________________________

Sub 创建新表()

Dim sht As Worksheet

Set sht = Sheets.Add

sht.Name = "汇总表"

sht.Tab.ColorIndex = 3

sht.Move before:=Sheets(1)

End Sub

WITH应用.xls



本文地址:http://www.itfw5.com/office/WPS/10364.html
  • IT服务网,提供郑州IT外包,郑州电脑上门维修,郑州内存卡数据恢复服务;
    请自觉遵守相关政策法规,严禁发布色情/暴力/反动言论。

    相关广告

    WPS推荐文章