分享

跟烟花入门VBA之34:Workbook对象(一)

 fzchenwl 2015-03-31

 Workbook对象是Excel应用程序中当前打开的工作簿对象。

  平时用Excel软件,就要打开工作簿,操作的工作表,单元格,图表,数据透视表,VBA工程,这些等等,都直接或间接的包含在工作簿对象中。


  如何引用一个工作簿对象?

   Workbooks.open方法,通过新建引用。

   示例:

    Sub Samp1()

     Dim wb As Workbook

     Set wb = Workbooks.Add

    End Sub


   从工作簿集合中返回一个对象

    Workbooks.item(index)

    由于Item默认属性,此处的Item可省略

    Index 可以是某个工作簿对象在工作簿集合中的索引号

    也可以是某个工作簿对象的名称(文件名,例如工作簿1.xlsm

     Sub Samp2()

        Dim wb As Workbook

        Set wb = Workbooks(1)

      'Set wb = Workbooks('工作簿1.xlsm')

     End Sub

  当从一个集合中返回某个对象时,一定要注意传入的索引号或名称是否有效,否则会有下标越界的错误。


  对象引用好后,就涉及到具体的属性和方法了,先讲讲工作簿对象的属性。

  
  Workbook.Activesheet属性

  返回一个对象,它代表活动工作簿中或指定的窗口或工作簿中的活动工作表(最上面的工作表)。
  如果没有活动的工作表,则返回
Nothing

  如果不指定工作簿对象,则返回活动工作簿中的活动工作表。

  示例:
     MsgBox '当前活动工作表为  ' &ActiveSheet.Name

   '通过消息框显示当前活动工作簿的活动工作表表名

  Workbook.CodeName 属性

  返回对象的代码名。String 型,只读。

  在“属性”窗口中“(名称)”右边的单元格中显示的值是所选对象的代码名。
  可以在设计过程中通过更改该值来改变对象的代码名。不能在运行过程中更改该属性。

  对于一个返回指定对象的表达式,该表达式可使用对象的代码名。

  例如,如果第一张工作表的代码名为 Sheet1,则下列表达式是等价的。

   Worksheets(1).Range('a1')

   Sheet1.Range('a1')

  工作表的名称可以与其代码名不同。
  创建一张工作表时,其工作表名称和代码名是相同的,不过,更改工作表名称和代码名是不会相互影响的。


  Workbook.FullName属性

  返回指定工作簿对象的名称(以字符串表示),包括其磁盘路径。String 型,只读。

  示例:
   MsgBox ActiveWorkbook.FullName

   '通过消息框显示当前活动工作簿的完整文件名


  Workbook.Path 属性:

  返回一个 String 值,它代表应用程序的完整路径,不包括末尾的分隔符和应用程序名称。

  示例: 
   MsgBox ActiveWorkbook.path

   '通过消息框显示当前活动工作簿的完整路径

  注意当新建的工作簿没有保存时,该属性返回的是长度为0的字符串(空字符串)


  Workbook.Saved属性

  Boolean 类型,可读写。

  如果指定工作簿从上次保存至今未发生过更改,则该属性值为 True

  如果指定工作簿有修改过但未保存,则该属性值为False

  如果要关闭某个已更改的工作簿,但又不想保存它或者不想出现保存提示,则可将此属性设为 True

  示例: 
    If Not ActiveWorkbook.Saved Then

       MsgBox '工作簿有修改,没有保存,请注意保存'

    End If


  Workbook.Password 属性

  String 类型,可读写。
  返回或设置在打开指定工作簿时必须提供的密码。

  示例:
     Dim wb As Workbook

     Set wb = Workbooks.Open('d:\Password.xlsm')

     wb.Password = InputBox('Enter Password')

   wb.Closesavechanges:=True

  注意:当工作簿内包含有宏表的时候,则无法设置Password属性。

  在有密码保护的工作簿中,也无法插入宏表。

  当用代码获取Password属性时,返回的是一串*号。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多