Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5726|回复: 8

[分享] 【烟花原创】VBA零基础之第34篇 Workbook对象(一)

[复制链接]
发表于 2013-11-27 23:20 | 显示全部楼层 |阅读模式
本帖最后由 hwc2ycy 于 2013-12-4 21:13 编辑

  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属性时,返回的是一串*号。

评分

参与人数 1 +15 收起 理由
云影 + 15 很给力!

查看全部评分

发表于 2013-12-15 08:54 | 显示全部楼层
回复

使用道具 举报

发表于 2013-12-30 10:07 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-20 11:33 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-16 14:41 | 显示全部楼层
{:29:}
回复

使用道具 举报

发表于 2014-6-16 21:31 | 显示全部楼层

回复

使用道具 举报

发表于 2014-6-17 22:34 | 显示全部楼层
Sub Test()
   Dim wb As Workbook
   Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Book1.xls")
   wb.Password = InputBox("请输入密码")
   wb.Close savechanges:=True
End Sub
谢谢分享,标记,三十四
回复

使用道具 举报

发表于 2014-6-18 11:14 | 显示全部楼层
回复

使用道具 举报

发表于 2023-1-19 15:38 | 显示全部楼层
学习中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 11:57 , Processed in 0.300470 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表