VBA:代码审查 – 跳过工作表的第一行

我试图了解如何跳过我的表的第一行(A),当我使用下面的代码,检查是否有任何值在我的Excel表格。

Sub IsActiveSheetEmpty() If WorksheetFunction.CountA(Cells) = 0 Then MsgBox ActiveSheet.Name & " is empty" Else MsgBox ActiveSheet.Name & " is not empty" End If End Sub 

提前致谢

请尝试以下(隐式引用活动工作表,以便您可能需要显式指定工作表名称)。它将使用您正在使用的任何版本的Excel的最后一行和列:

 Sub IsActiveSheetEmpty() If WorksheetFunction.CountA(Range(Cells(2, "A"), Cells(Cells.Rows.Count, Cells.Columns.Count))) = 0 Then MsgBox ActiveSheet.Name & " is empty" Else MsgBox ActiveSheet.Name & " is not empty" End If End Sub 
 Option Explicit Sub IsActiveSheetEmpty() Dim myRange As Range Set myRange = Range("A2",Cells(2,1).SpecialCells(XlCellType.xlCellTypeLastCell)) If WorksheetFunction.CountA(myRange) = 0 Then MsgBox ActiveSheet.Name & " is empty" Else MsgBox ActiveSheet.Name & " is not empty" End If End Sub 

看起来应该是一个布尔返回函数而不是sub,但是:

 Option explicit Sub IsActiveSheetEmpty() Dim ws as worksheet Set ws = Activesheet With ws If application.CountA(.range(.range("B1"),.cells(.rows.count,.columns.count))) = 0 Then MsgBox .Name & " is empty" Else MsgBox .Name & " is not empty" End If End with End Sub 

未经testing,写在手机上。 它是做你想要的吗?

编辑:认为你的意思是列A?

 Sub IsActiveSheetEmpty() If WorksheetFunction.CountA("A2:A5") = 0 Then 'skips A1 MsgBox ActiveSheet.Name & " is empty" Else MsgBox ActiveSheet.Name & " is not empty" End If 

结束小组