Excel VBA 判断工作表是否为空或被使用过(比如设置过框线)

IsEmpty 函数
返回 Boolean 值,指出变量是否已经初始化。
【语法】
IsEmpty(expression)
必要的 expression 参数是一个 Variant,包含一个数值或字符串表达式(实际上还可以是单元格)。但是,因为 IsEmpty 被用来确定个别变量是否已初始化,所以 expression 参数通常是单一变量名。
【说明】
如果变量未初始化或已明确设置为 Empty,则 IsEmpty 返回 True;否则返回 False。如果 expression 含有多个变量,则 IsEmpty 总是返回 False。IsEmpty 只返回对 variant 表达式有意义的信息。
‘判断工作表是使用过自定义函数
Function isUsedSheet(ByVal sheet As Worksheet) As Boolean
    isUsedSheet = IsEmpty(sheet.UsedRange)
End Function
‘判断工作表是为空工作表(即所以单元格的值为空)自定义函数
Function isEmptySheet(ByVal sheet As Worksheet) As Boolean
    If Application.WorksheetFunction.CountA(sheet.Cells) > 0 Then
        isEmptySheet = False
    Else
        isEmptySheet = True
    End If
End Function

Sub shtTest() ‘测试
    Dim sht1 As Worksheet
    For Each sht1 In Sheets
        Debug.Print sht1.Name & " is empty? " & isEmptySheet(sht1)
        Debug.Print sht1.Name & " is used? " & isUsedSheet(sht1)
    Next

End Sub
时间: 2024-12-20 22:57:21

Excel VBA 判断工作表是否为空或被使用过(比如设置过框线)的相关文章

Excel vba引用工作表的三种写法

文章介绍vba引用工作表名称的三种不同写法. vba引用工作表是我们在学习VBA过程中很常用. 本文提供三种vba引用工作表的代码,通过这三种方式都可以实现vba引用工作表名. 方法一:Sheets(Sheet.Index) 方法二:Sheets(Sheets.Name) 方法三:Sheets.CodeName 下面是vba引用工作表的相关的一个截图,可以很直观的看到其使用. 原文地址:https://www.cnblogs.com/huhewei/p/9039168.html

Excel怎么改变工作表从右到左显示

方法一: 正常的工作表一般显示都是如下图,最左面是行号,最上面是列标,从左到右. 按<Alt+F11>组合键进入VBE界面. 在[属性]框里将"DisplayRightToLeft"选项改成TRUE. 再回到Excel工作表界面,界面就变成了下面的样式.同样的方法,如果改成FALSE则工作表显示还是从左到右. 方法二: 在功能区空白区鼠标右键,选择[自定义快速访问工具栏]. 选择[所有命令],并找到[从右向左书写的文档],点击[添加]按钮. 如上操作并确定后,快速访问工具栏

excel vba 实现跨表单(sheet) 搜索 - 显示搜索行记录搜索历史

前两天,一个朋友问我,有没有办法在excel里实现一个表单里是原始数据,在另一个表单里显示搜索到的行,搜索关键词可用~分隔开,并把搜索历史记录下来? 我想了想,用vba实现肯定可以啊,但是我又在想,有没有可能excel自身的功能就可以实现了呢,但是后来没有发现excel自带这种功能.于是思考自己用vba给实现吧. 于是我打开我的电脑,结果发现我的office版本是wps,根本就没有vba功能,网上说的使用vba模块安装,但是始终没有安装成功.最后放弃了,自己下载一个office2013, 自带v

exel VBA拆分工作表

客户经理每个月要拜访很多客户,公司要求必须要一个拜访记录汇总表并且要做一个拜访客户的分表,以便主管抽查,表的结构如图一.这个时候如果一个客户一个客户填的话就很烦很耗时间.我们可以做一个VBA按钮,每个月只要把汇总部分填好后,只要点击一下该按钮,就自动生成和客户信息的分表,省力又省心. 图一 先贴代码: Sub cfsheet() Dim rng As Range, sht As Worksheet Set rng = Application.InputBox("请选择需要拆分的列",

VBA取消工作表或工作薄密码保护

Sub 取消工作表保护() Dim sht As Worksheet For Each sht In Worksheets sht.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True , AllowFiltering:=True, AllowUsingPivotTables:=True sht.Protect DrawingObjects:=False, Contents:=True, Scenarios:= False,

恍然小悟,去掉Excel的worksheet(工作表)保护的新方法

广为认知的方法是,运行一段猜测密码的VBA(https://uknowit.uwgb.edu/page.php?id=28850),几十秒就可以找到,因为密码Hash很短所以密码有多个.但是Excel2013里密码Hash很长所以密码几乎是唯一的,依靠这个VBA肯定找不到密码. 我虽然手头没有Excel 2013,但是推测,这个worksheet保护,其实没有对文件内容加密,仅仅是做了些标记,说不让修改某些制定的cell而已,应该是去掉了标记就可以自由修改了的.在Office 2010上实验了,

Excel中判断一个表中的某一列的数据在另一列中是否存在

  A B C D 1 10   3 有 2 6   e 无 3 3   6 有 判断c列的值在A列中是否存在(假定C列为需要判断列,A列为目标列) 在D1中输入以下公式,然后下拉公式即可 =IF(COUNTIF(A:A,C1)>0,"有","无") =IF(COUNTIF(目标列,判断列首个单元格)>0,"是","否")

第二章、Excel工作薄和工作表操作

02-00.工作薄和工作表的基础知识 定义与关联:工作薄就是一个Excel文件,这个文件是由多张工作表组成的,比方说如果工作薄看做一本书,而工作表可以看做是表里的每一页. 大小:一本书到底有多厚,工作薄可以建多少个工作表,有的教材上面说是255,实际上是不完全准确的,工作表能建立多少取决于内存的大小 重要性:工作薄(workbook)与工作表(worksheet)是Excel VBA中非常重要的两个对象 工作中经常对几个工作薄中的数据进行汇总,也可能对一个表中的数据进行按不同的方式分单. 分到不

C# 原样复制excel工作表

在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文档之间复制.本文主要介绍如何用C#在同一文档内或不同文档间原样复制excel工作表(包括数据.图片和格式等),希望能对有同样问题的朋友有些许帮助(如果有不清楚的地方,可以参考教程). 第一步:新建一个控制台项目并添加引用和命名空间. using Spire.Xls; 第二步:新建一个workbook