Excel精英培训网

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

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

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

  今天我们讲讲在工作簿中的
  准备代码:
   Sheets.Add Type:=xlWorksheet
   '插入工作表
   Sheets.Add Type:=xlChart
   '插入图表
   Sheets.Add Type:=xlExcel4MacroSheet
   '插入Excel 版本4 宏工作表
   Sheets.Add Type:=xlExcel4IntlMacroSheet
   '插入工作表 Excel版本4 宏工作表

  Workbook.Sheets 属性
   Sheets 对象,只读。
   返回一个 Sheets 集合,它代表指定工作簿中所有工作表
   在不使用对象识别符的情况下使用此属性等效于使用 ActiveWorkbook.Sheets
   Dim sht As Object
   Dim strMsg As String
   strMsg = "当前工作簿中有以下表" & vbCrLf
   For Each sht In Sheets
    strMsg = strMsg & sht.Name & vbCrLf
   Next
   MsgBox prompt:=strMsg, Buttons:=vbInformation + vbOKOnly
   '对话框中显示了当前的图表工作表,工作表,宏表

  Workbook.Charts 属性
   返回一个 Sheets 集合,它代表指定工作簿中的所有图表工作表
   Dim sht As Object
   Dim strMsg As String
   strMsg = "当前工作簿中有以下图表工作表" & vbCrLf
   For Each sht In Charts
    strMsg = strMsg & sht.Name & vbCrLf
   Next
   MsgBox prompt:=strMsg, Buttons:=vbInformation + vbOKOnly
   '对话框中显示了当前工作簿中的图表工作表名称

  Workbook.Excel4IntlMacroSheets 属性
   Sheets集合,只读。
   返回一个 Sheets 集合,它代表指定工作簿中所有的 Microsoft Excel 4.0 国际宏表
   Dim sht As Object
   Dim strMsg As String
   strMsg = "当前工作簿中有以下Excel 4.0 国际宏表" & vbCrLf
   For Each sht In Excel4IntlMacroSheets
    strMsg = strMsg & sht.Name & vbCrLf
   Next
   MsgBox prompt:=strMsg, Buttons:=vbInformation + vbOKOnly
   '对话框中显示了当前工作簿中的 Excel 4.0 国际宏表

  Workbook.Excel4MacroSheets 属性
   Sheets 集合,只读。
   返回一个 Sheets 集合,它代表指定工作簿中所有的Excel 4.0 宏表
   Dim sht As Object
   Dim strMsg As String
   strMsg = "当前工作簿中有以下Excel 4.0 宏表" & vbCrLf
   For Each sht In Excel4MacroSheets
    strMsg = strMsg & sht.Name & vbCrLf
   Next
   MsgBox prompt:=strMsg, Buttons:=vbInformation + vbOKOnly
   '对话框中显示了当前工作簿中的 Excel 4.0 宏表

  Workbook.Worksheets 属性
   Sheets 集合,只读。
   返回一个 Sheets 集合,它代表指定工作簿中所有工作表
   在不使用对象识别符的情况下,使用此属性将返回活动工作簿中所有的工作表。
   此属性不返回宏表;使用 Excel4MacroSheets 属性或 Excel4IntlMacroSheets 属性可返回这些表。
   Dim sht As Object
   Dim strMsg As String
   strMsg = "当前工作簿中有以下工作表" & vbCrLf
   For Each sht In Worksheets
    strMsg = strMsg & sht.Name & vbCrLf
   Next
   MsgBox prompt:=strMsg, Buttons:=vbInformation + vbOKOnly
   '对话框中显示了当前工作簿中的 工作表

  四种表的代码基本就这么多,附一个清除宏表,图表的代码。
  当然,如果嫌麻烦,直接关闭工作簿不保存就可以了。
   Dim sht As Object
   Application.DisplayAlerts = False
   '由于删除工作表时,会有一个需要确认的对话框
   '通过设置Application.DisplayAlertsy为False
   '宏运行时禁止显示提示和警告消息
   '当出现需要用户应答的消息时,Microsoft Excel 将选择默认应答
   '如果将该属性设置为 False,则在代码运行结束后,Microsoft Excel 会将该属性设置为 True,除非运行的是跨进程代码。

   Application.ScreenUpdating = False
   '关闭屏幕更新可加快宏的执行速度。这样将看不到宏的执行过程,但宏的执行速度加快了。
   '当宏结束运行后,请记住将 ScreenUpdating 属性设置回 True
   
   For Each sht In Charts
    sht.Delete
   Next
   '遍历删除图表工作表

   For Each sht In Excel4MacroSheets
    sht.Delete
   Next
   '遍历删除 4.0 宏表

   For Each sht In Excel4IntlMacroSheets
    sht.Delete
   Next
   '遍历删除 4.0 国际宏表

   Application.DisplayAlerts = True
   Application.ScreenUpdating = True
   '还原设置
   MsgBox "宏表,图表删除完成"

评分

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

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-11-29 12:01 | 显示全部楼层
回复

使用道具 举报

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

使用道具 举报

发表于 2013-12-30 10:13 | 显示全部楼层
{:1112:}
回复

使用道具 举报

发表于 2014-4-20 15:32 | 显示全部楼层
{:35:}
回复

使用道具 举报

发表于 2014-5-30 17:19 | 显示全部楼层
请教下,什么叫“在不使用对象识别符的情况下”?
回复

使用道具 举报

 楼主| 发表于 2014-5-30 18:55 | 显示全部楼层
feeling_c 发表于 2014-5-30 17:19
请教下,什么叫“在不使用对象识别符的情况下”?

也就是限定前缀,上级对象。
回复

使用道具 举报

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

使用道具 举报

发表于 2014-6-17 22:40 | 显示全部楼层
工作表、图表、宏表、国际宏表
谢谢分享,标记,三十五
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 17:29 , Processed in 0.473089 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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