View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Zone[_3_] Zone[_3_] is offline
external usenet poster
 
Posts: 373
Default Is Worksheet Empty?

Thank you for your reply, Otto. It's helpful because it shows me that the
instruction may be shortened to Application.CountIf, which I didn't realize.
It is a source of curiosity to me, though, that either
WorksheetFunction.CountIf or Application.CountIf will work, but CountIf will
not work without either one of the qualifiers. With my mania for shortening
statements to their most compact form, I prefer Application.CountIf over
WorksheetFunction.CountIf because the former is shorter than the latter.
But your comment indicates a preference for including the Application
qualifier over the WorksheetFunction qualifier as a matter of form. Would
you please expound on this a bit? Regards, James

"Otto Moehrbach" wrote in message
...
Because "CountA" is a worksheet function, you must use "Application" in
front of it. But you can delete the "WorksheetFunction". HTH Otto
"Zone" wrote in message
...
Yes, I understand what you mean. Concise wording of questions is so
important, yet so rare! Let's say I want to determine only whether the
worksheet contains data in the cells. Then your COUNTA is ideal. What I
really meant by my follow-up question is that I changed your code,
leaving out Application. and the parentheses around the MsgBox's
argument. I have a mania for compacting instructions into the shortest
form possible. Do you see any problem with leaving out Application. and
the extra parentheses? James

"Gary''s Student" wrote in
message ...
The only problem is :

What does Empty mean??

If a worksheet has many inserted comments and nothing else, COUNTA will
ignore them, but Activesheet.Usedrange will not.

If a worksheet has many cells with the background color set and nothing
else, COUNTA will ignore them, but Activesheet.Usedrange will not.

If a worksheet has ClipArt and nothing else, both COUNTA and
Activesheet.UsedRange will tell you nothing is there!
--
Gary''s Student - gsnu200745


"Zone" wrote:

Cool, Thanks! A question. It seems to work just as well like this.
Sub zone()
MsgBox WorksheetFunction.CountA(Cells)
End Sub
Any problem with this? James

"Gary''s Student" wrote in
message
...
Sub zone()
MsgBox (Application.WorksheetFunction.CountA(Cells))
End Sub

will report 0 on an empty sheet
--
Gary''s Student - gsnu200745


"Zone" wrote:

I found that if a worksheet is completely empty, its UsedRange will
be
$A$1.
Then if A1 is empty, the worksheet is blank. But it seems there
should
be a
more elegant way to determine whether the worksheet is blank. TIA,
James