打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
跟烟花入门VBA之45:Worksheets对象

 WorkSheets对象与之前讲过的Sheets对象不同之处在于Sheets对象可以包含图表工作表,而WorkSheets只包含工作表。

  看下面的代码:

  Dim sht As Object

 Dim str$

  '定义字符串类型的变量的省写

  '常规则写法为 dimstr as string

  'Sheets.Add Type:=xlChart, Count:=3

  '在当前活动工作簿中插入3个图表工作表

 str = 'Sheets集合包含以下成员:' & vbCrLf

  For Each sht In Sheets

 str = str & sht.Name & vbCrLf

  Next

 MsgBox str


  str = 'WorkSheets集合包含以下成员:' & vbCrLf

  For Each sht In Worksheets

 str = str & sht.Name & vbCrLf

  Next

  MsgBox str

  
  代码运行后,两次消息框显示的内容基本不同。


  两者的属性和方法基本相同,相同的地方就不做介绍了,这里只介绍不同之处。

  Worksheets.Add方法

  语法:Add(Before, After,Count, Type)

   Type参数不能指定为xlChart,否则在执行时会报1004错误。该参数的其他三个可以指定。

   其他三个参数可以参照Sheets.add方法。


  另外在用代码操作工作表时(狭义的工作表集合专指Worksheets,广义的则指Sheets),如果操作的对象非图表工作表,则尽量用WorkSheets来引用工作表。避免操作到图表工作表时发生运行错误。图表工作表里可没有Range对象供你操作。

补充知识点:

  这两天在论坛答题时,发现很多童鞋的代码中在批量处理单一对象时,多次操作却没有利用With语句,看着不是个滋味呀。

  With 语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在  With 控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。

  先看示例代码,没有用到With语句。

   ListView2.View = lvwReport

   ListView2.FullRowSelect = True

   ListView2.Gridlines = True

   ListView2.FullRowSelect = True

   ListView2.ColumnHeaders.Add , , '申请编号', 40

   ListView2.ColumnHeaders.Add , , '区域', 40

   ListView2.ColumnHeaders.Add , , '姓名', 60

  这一段代码是在窗体初始化时针对Listview2对象的一系列操作,执行的话肯定是没有错的。
  可如果用上With语句优化后,代码带来的视觉效果,层次结构,逻辑性就不一样了,关键是还可以偷不少懒嘛,少敲不少对象名,何乐而不为呢(兴许你会说不是有CTRL+V嘛,高手还会说有CTRL+SPACE,可用了这,你都不需要按这些键或狂按鼠标了)。

  With ListView2

 .View = lvwReport
   .FullRowSelect = True

   .Gridlines = True

   .FullRowSelect = True

   .ColumnHeaders.Add , , '申请编号',40

   .ColumnHeaders.Add , , '区域', 40

   .ColumnHeaders.Add , , '姓名', 60

  End With

针对ColumnHeaders如果再优化的话,可以这样写

   With ListView2

   .View = lvwReport

    .FullRowSelect = True

    .Gridlines = True

    .FullRowSelect = True

    With .ColumnHeaders

     .Add , , '申请编号',40

     .Add , , '区域', 40

     .Add , , '姓名', 60

    End With

  End With

  经过这一番的打扮后,是不是有种脱胎换骨的感觉。

先看看语法:

  With Object

   [语句]

  End With

 注意:

  当程序一旦进入 With 块,object 就不能改变。因此不能用一个 With 语句来设置多个不同的对象。

  可以将一个 With 块放在另一个之中,而产生嵌套的 With 语句
  但是,由于外层
With 块成员会在内层的 With 块中被屏蔽住,所以必须在内层的 With 块中,使用完整的对象引用来指出在外层的 With 块中的对象成员

  在使用了With语句后,如果引用Object的属性和方法,在方法和属性的前面.号是不能少的。

   With ListView2

    .View = lvwReport
   End with

  如果把.view=lvwReport写成view=lvwReport时,这里的view要么就当成了普通的变量,要么在编译时就会产生错误。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA窗体之ListView控件的基本应用 | VBA实例教程
VBA系列-For Each语句
Excel VBA编程
VB中ListView的用法_杂谈,百态,王维刚
VB ListView的使用 - 笔记 - 梅梅 - CSDN学生大本营 - Powere...
Worksheet对象 (一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服