开发VBA代码时,经常需要操作工作表对象,但是这个是否存在呢?各种奇葩的用户都会有,所以在代码中一定要先判断然后再进行后续操作,非常可惜的是VBA中并没有提供直接的方法来完成这个判断,只有写一个自定义函数了。

Function udfSheetExists(strShtName As String, Optional strWbName As String) As BooleanOn Error Resume NextIf strWbName = "" ThenSet objWb = ActiveWorkbookElseSet objWb = Workbooks(strWbName)End IfudfSheetExists = CBool(Not objWb.Sheets(strShtName) Is Nothing)On Error GoTo 0
End Function

代码非常简单,函数有两个参数:

参数名称 含义 说明
strShtName 指定工作表名称 必选
strWbName 指定工作簿名称 可选

调用函数时,如果没有提供参数strWbName ,将使用活动工作簿做为目标工作簿。objWb.Sheets(strShtName) Is Nothing判断工作表是否存在,既然这句代码就可以判断工作表是否存在,为啥还要写这么多代码的一个自定义函数呢?如果工作表不存在,那么objWb.Sheets(strShtName)将产生运行时错误9(下标越界),这也是代码中需要使用On Error Resume Next忽略系统错误的原因。

演示代码如下:

Sub Demo()Debug.Print udfSheetExists("Sheet1")Debug.Print udfSheetExists("Sheet1", "MyData.xlsx")
End Sub

Debug.Print udfSheetExists("Sheet1")省略第二个参数,相当于检查活动工作簿中是否存在名称为Sheet1的工作表。
自定义函数中,并没有检查名称为strWbName的工作簿是否存在,有兴趣的读者可以自行补充。

如何判断工作簿中是否存在某个工作表相关推荐

  1. Excel批量打印同一个工作簿中的多个工作表文件

    今天想给大家分享的是,批量打印同一个工作簿中的多个工作表文件,如下图的3个班级的成绩表,甚至更多班级的表格 (方方格子插件) 1.先看到动图 2.在开始之前我们需要新建一个工作簿 ​ 3.然后我们选择 ...

  2. 如何在新的Excel工作簿中更改默认的工作表数

    By default, new workbooks created in Excel contain one worksheet. If you typically use more than one ...

  3. java对两个表进行排序_Excel工作簿中多个worksheet工作表,如何对工作表进行排序?...

    案例:如下图所示,一个Excel文件中,包含了多个工作表,有1-雷哥office,2-雷哥office...... 但是,我们发现工作表的顺序是比较混乱的,为了方便管理,如何对工作表进行排序呢? 方法 ...

  4. 通过VBA将一个工作簿中的多个工作表拆分为多个工作簿,以工作表名称命名工作簿

    前提:电脑上装有office2007或office2013等,WPS不行. 1.如果你有现成的一个工作簿含有多个工作表的文件,想分成多个工作簿的话, 可以通过office2007或office2013 ...

  5. Excel一键另存工作簿中的多个工作表为PDF

    .打开工作簿看到里面有多个工作表,今天要和大家分享的操作就是,一键将所有的工作表导出为多个PDF文件 01.选择方方格子按钮 02.选择其中的工作表操作命令 03.文件导出为PDF文件 04.弹出对话 ...

  6. vb整合多个excel表格到一张_[Excel]同一工作簿中多个工作表保存成独立的表格

    一个工作簿中有多个表格,如何将其表格单独保存成一个独立的文档呢? 如果表格少,操作如下:选中要导出表格的标签名--鼠标邮件--移动或复制表格--新建工作簿. 当如果表格太多呢,以上方法就太罗嗦了. 简 ...

  7. Excel如何将多个工作簿合并到一个工作簿中

    如下图文件夹中含有六个工作簿,现在想要将这六个工作簿合并到一个工作簿中. 新建一个工作簿 点击下图选项(Excel工具箱,百度即可了解详细的下载安装方法,本文这里不作详细叙述) 点击[汇总拆分] 选择 ...

  8. 多个excel工作簿合并_「Excel技巧」批量将多个工作簿的工作表合并到一个工作簿中...

    多个工作簿里的表格合并到一个工作簿中,在日常工作中应该经常碰到吧. 怎么合并会比较快又省事? 当然,肯定不是复制粘贴,要合并的工作簿多的情况下,这种方式很耗力气. 不妨,试试用VBA代码法. 今天来讲 ...

  9. Excel 2010 VBA 入门 067 导入多个工作簿中的工作表

    目录 示例 实现代码 导入多个工作簿中的工作表 Application. ScreenUpdating属性 示例 如图所示,在同一个目录下有多个工作表名称相同的工资汇总月报.现希望通过VBA建立该多个 ...

  10. oracle两列合并成一列_POWER QUERY--一个工作簿内的多张工作表合并汇总

    如果要汇总的工作表是在同一个工作簿内,此时的汇总并不复杂,但要先弄清楚:这些工作表数据的汇总操作,是纯粹将数据堆积汇总到一张表,还是根据各张表之间的关联字段来进行汇总. 01 多张工作表的堆积汇总 此 ...

最新文章

  1. Android课程设计倒计时app,单片机课程设计-可调倒计时器.doc
  2. 神经网络基础:七种网络单元,四种层连接方式
  3. ftp连接中服务器位置,使用 FTP 连接到服务器
  4. tomcat调优的几个方面
  5. 立flag(java)
  6. [转载] python格式化字符串漏洞_从两道CTF实例看python格式化字符串漏洞
  7. 开启Github之旅
  8. const定义常量_JS声明变量var、let 、const(含重点示例)
  9. python无限弹窗代码_python弹窗程序教程(附源码解析)
  10. php 字符串长度函数
  11. Android上Excel编辑器,若风excel文件编辑器
  12. Linux scipy安装
  13. 湖南省界矢量图_全国省、县界线shp格式矢量图(精确到县区域)
  14. vue出现client:172 [WDS] Disconnected!
  15. Angular 4入门教程系列:14:PrimeNG的使用方式
  16. w10投影全屏设置_教你win10连接投影仪显示比例不正常的解决教程
  17. [Pro.android.3][读书笔记]Android 01 Android简介 连载
  18. FPGA数字系统设计(8)——可综合电路及状态机
  19. [附源码]Python计算机毕业设计房地产销售系统Django(程序+LW)
  20. 卡尔曼滤波器原理讲解及其matlab实现

热门文章

  1. excel中如何进行元单位到万元单位的转换
  2. 人工智能技术的发展促进城市大脑预演数字化城市未来
  3. MAC 访问 Windows 共享文件夹
  4. 三极管分压共射放大电路
  5. 学计算机的制作水印,如何设置属于自己的水印,电脑上制作属于自己的文字水印...
  6. win10如何在当前目录打开cmd窗口
  7. 微信扫一扫二维码直接打开手机默认外部浏览器
  8. 第七届山东理工大学ACM趣味编程循环赛 Round#1 sdut4109 玄黄的字符串
  9. 深层和浅层特征融合的坑
  10. 怎么注册tk域名_.TK后缀免费顶级域名注册(附教程)