It depends what you mean by "data" and "active". In general you can do
something like this air code, which relies on Excel's UsedRange
property:
Dim oBook As Excel.Workbook
Dim oSheet As Excel.Worksheet
Set oBook = GetObject("C:\Folder\File.xls")
For Each oSheet in oBook.Worksheets
With oSheet
Debug.Print .Name, .UsedRange.Address, _
.UsedRange.Cells(1,1).Formula
End With
Next
Set oSheet = Nothing
oBook.Close False
Set oBook = Nothing
A sheet whose UsedRange is $A$1 and with no data in $A$1 is empty.
However, Excel's idea of a UsedRange isn't always the same as yours or
mine. You may need to run code to reset the UsedRange on each sheet
before you use it: see
http://www.mvps.org/dmcritchie/excel/lastcell.htm#resetall for ideas.