前言:
当前兄弟们对“vbs判断字符串是否为空”大概比较着重,咱们都需要分析一些“vbs判断字符串是否为空”的相关内容。那么小编也在网络上汇集了一些有关“vbs判断字符串是否为空””的相关资讯,希望大家能喜欢,小伙伴们快快来了解一下吧!大家好,我们今日继续讲解VBA代码解决方案的第57讲内容:判断工作表是否为空表。在实际的工作中,我们要常常判断某个工作表是否为空的,那么在VBA中是如何能做到这一点呢?
VBA中没有专门的属性或函数可以判断工作表是否为空白工作表,可以使用自定义函数返回指定工作表是否为空工作表
知识点一:利用工作表函数CountA统计工作表已使用区域的非空单元格个数:COUNTA函数功能是返回参数列表中非空的单元格个数。利用函数 COUNTA 可以计算单元格区域或数组中包含数据的单元格个数。
知识点二:我们可以自定义一个函数,利用CountA统计工作表已使用区域的非空单元格个数,如果这个数值为0,那么这个工作表就是空的。
首先看看我们的自定义函数,如下面的代码所示。
Function MyIsBlankSht(Sh As Variant) As Boolean
If TypeName(Sh) = "String" Then Set Sh = Worksheets(Sh)
If Application.CountA(Sh.UsedRange.Cells) = 0 Then
MyIsBlankSht = True
End If
End Function
代码解析:
自定义MyIsBlankSht函数包含一个Variant变量类型的参数,代表工作表名称或者对象名称。如果指定的工作表为空工作表,则该函数返回True。
第2行代码使用TypeName函数判断参数Sh是否为字符串类型("String"),如果是字符串,则将以该字符串作为名称的工作表赋值给变量Sh。
第3行代码通过工作表函数CountA统计工作表已使用区域的非空单元格个数,如果统计结果为0,则表示该工作表为空工作表。
我们看看上述自定义函数在实际中的利用:有了上述的自定义函数,现在就可以像使用VBA函数一样使用自定义的MyIsBlankSht函数,如下面的代码我们要首先判断一下某个工作表是否为空,如果为空,那么删除它。
Sub MyDelBlankSht()
Dim Sh As Worksheet
Application.DisplayAlerts = False
i = 1
For Each Sh In ThisWorkbook.Sheets
If MyIsBlankSht(Sh) Then Sh.Delete: MsgBox "删除" & i & "个工作了": i = i + 1
Next
Application.DisplayAlerts = True
MsgBox "共删除" & i - 1 & "个工作!"
End Sub代码解析:
使用自定义的MyIsBlankSht函数删除工作簿中所有空工作表。
第3行代码将Application对象的DisplayAlerts属性设置为False,使删除时不显示系统警告对话框。
第5行到第7行代码,使用For Each...Next语句遍历所有工作表,使用自定义的MyIsBlankSht函数判断是否为空表,如果为空表则使用Delete方法删除。
注意 自定义MyIsBlankSht函数仅仅判断工作表单元格区域内容是否为空,如果工作表中存在其它对象(如图形对象、数据有效性、单元格批注等),不作为判断的基准。
代码实测:
代码截图:
运行截图:每删除一个工作表会告诉我们删除的个数。
最后会告诉我们共删除了几个工作表:
今日内容回向:
1 如何判断工作表为空呢?
2 如何删除空白的工作表呢?
标签: #vbs判断字符串是否为空