ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yuanzhuping

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-28 00:03 | 显示全部楼层
本帖已被收录到知识树中,索引项:开发帮助和教程
袁老师端午节快乐!

TA的精华主题

TA的得分主题

发表于 2009-5-28 08:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-5-28 11:04 | 显示全部楼层
非常感谢~~找了1天多,你的这个教程最仔细了~~不过,让我也鼓捣了半天才全部下完~~5555555~~~

TA的精华主题

TA的得分主题

发表于 2009-5-28 11:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-5-28 13:28 | 显示全部楼层
太感谢了。太难得拉。感激得可以为你跳脱衣舞!!谢谢

TA的精华主题

TA的得分主题

发表于 2009-5-28 16:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-5-28 22:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
增加了Word文档~找起来更方便了~
再支持一下~

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-28 22:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

第9部分 函数的使用

技巧165         判断工作表是否为空表
       VBA中没有专门的属性或函数可以判断工作表是否为空白工作表,可以使用自定义函数返回指定工作表是否为空工作表,如下面的代码所示。
  1. #001  Function IsBlankSht(Sh As Variant) As Boolean
  2. #002      If TypeName(Sh) = "String" Then Set Sh = Worksheets(Sh)
  3. #003      If Application.CountA(Sh.UsedRange.Cells) = 0 Then
  4. #004          IsBlankSht = True
  5. #005      End If
  6. #006  End Function
复制代码
代码解析:
       自定义IsBlankSht函数包含一个Variant变量类型的参数,代表工作表名称或者对象名称。如果指定的工作表为空工作表,则该函数返回True。
       第2行代码使用TypeName函数判断参数Sh是否为字符串类型(“String”),如果是字符串,则将以该字符串作为名称的工作表赋值给变量Sh。
       第3行代码通过工作表函数CountA统计工作表已使用区域的非空单元格个数,如果统计结果为0,则表示该工作表为空工作表。
       现在就可以像使用VBA函数一样使用自定义的IsBlankSht函数,如下面的代码所示。
  1. #001  Sub DelBlankSht()
  2. #002      Dim Sh As Worksheet
  3. #003      Application.DisplayAlerts = False
  4. #004      For Each Sh In ThisWorkbook.Sheets
  5. #005          If IsBlankSht(Sh) Then Sh.Delete
  6. #006      Next
  7. #007      Application.DisplayAlerts = True
  8. #008  End Sub
复制代码
代码解析:
       使用自定义的IsBlankSht函数删除工作簿中所有空工作表。
       第3行代码将Application对象的DisplayAlerts属性设置为False,使删除时不显示系统警告对话框。
       第4行到第6行代码,使用For Each...Next语句遍历所有工作表,使用自定义的IsBlankSht函数判断是否为空表,如果为空表则使用Delete方法删除。
       注意 自定义IsBlankSht函数仅仅判断工作表单元格区域内容是否为空,如果工作表中存在其它对象(如图形对象、数据有效性、单元格批注等),还需要再进一步判断。

技巧165 判断工作表是否为空表.rar

7.7 KB, 下载次数: 716

TA的精华主题

TA的得分主题

发表于 2009-5-28 22:52 | 显示全部楼层

感谢

好好学习、天天向上

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-28 23:09 | 显示全部楼层

第9部分 函数的使用

技巧166         查找指定工作表
       判断工作簿中是否存在指定名称的工作表,除了使用遍历工作簿中所有工作表的方法外,还可以使用自定义函数,如下面的代码所示。
  1. #001  Function ExistSh(Sh As String) As Boolean
  2. #002      Dim Sht As Object
  3. #003      On Error Resume Next
  4. #004      Set Sht = Sheets(Sh)
  5. #005      If Err.Number = 0 Then ExistSh = True
  6. #006      Set Sht = Nothing
  7. #007  End Function
复制代码
代码解析:
       自定义ExistSh函数包含一个String类型的参数,代表需要判断的工作表名称。如果该工作表存在,则返回True。
       第5行代码判断前面的代码是否出错,如果前面的代码存在错误,则表示不存在指定名称的表。
       使用自定义ExistSheet函数判断工作簿中是否存在指定名称的工作表,如下面的代码所示。
  1. #001  Sub NotSht()
  2. #002      Dim Sh As String
  3. #003      Sh = InputBox("请输入工作表名称:")
  4. #004      If Len(Sh) > 0 Then
  5. #005          If Not ExistSh(Sh) Then
  6. #006              MsgBox "对不起," & Sh & "表不存在!"
  7. #007          Else
  8. #008              Sheets(Sh).Select
  9. #009          End If
  10. #010      End If
  11. #011  End Sub
复制代码
代码解析:
       NotSht过程使用自定义的ExistSh函数判断工作簿中是否存在指定名称的工作表,如果不存在则使用消息框进行提示,如图所示。
       Snap1.jpg

技巧166 查找指定工作表.rar

7.49 KB, 下载次数: 738

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 20:44 , Processed in 0.054150 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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