It doesn't need a dim statement, but you do need to have a function with that
name.
Do you have a function like that that the calling sub can find?
If no, maybe you can use this one:
Function IsEmptyWorksheet(wks As Worksheet) As Boolean
If wks.UsedRange.Address = "$A$1" _
And IsEmpty(wks.Range("A1").Value) Then
IsEmptyWorksheet = True
Else
IsEmptyWorksheet = False
End If
End Function
Here are some alternatives, too:
Doug Glancy's:
http://www.dicks-blog.com/archives/2...-viewer-addin/
John Walkenbach's:
http://j-walk.com/ss/excel/tips/tip67.htm
Jim Rech's:
http://www.oaltd.co.uk/MVP/MVPPage.asp#JimRech
Jim's version for the Office2007 button images can be found on Ron de Bruin's
site:
http://www.rondebruin.nl/ribbon.htm
or directly from:
http://www.rondebruin.nl/files/BtnImages.zip
Sunday88310 wrote:
Question is why (IsEmptyWorksheet) can hang up the running of the application
does this statement need a Dim
This statement produces all the system faces and takes 3 minutes to run.
Dim iFaceId As Integer ' Tracks Current FaceID
Dim iColumn As Integer ' Tracks Current column in worksheet
Dim iRow As Integer ' Tracks current Row in worksheet
Dim ctl As CommandBarControl
Dim cbr As CommandBar
If Not IsEmptyWorksheet(ActiveSheet) Then Exit Sub
On Error GoTo Recover
Application.ScreenUpdating = False
Set cbr = CommandBars.Add(Position:=msoBarFloating, MenuBar:=False,
temporary:=True)
Set ctl = cbr.Controls.Add(Type:=msoControlButton, temporary:=True)
iRow = 1
Do
For iColumn = 1 To 10
iFaceId = iFaceId + 1
Application.StatusBar = "FaceID = " & iFaceId
ctl.FaceId = iFaceId
ctl.CopyFace
ActiveSheet.Paste Cells(iRow, iColumn + 1)
Cells(iRow, iColumn).Value = iFaceId
Next iColumn
iRow = iRow + 1
Loop
Recover:
If Err.Number = 1004 Then Resume Next
Application.StatusBar = False
cbr.Delete
End Sub
--
William<"M"
--
Dave Peterson