Calling a Custom Function within a Procedure

T

terryspencer2003

I am trying to call a function within a procedure. I can't seem to
get it to work. What am I doing wrong. Here is the function:

Private Function IsLeapYear(Y As Integer)
IsLeapYear = Month(DateSerial(Y, 2, 29)) = 2
End Function

Here is the Procedure:

Sub Simulation()
Dim BeginningYear As Integer

BeginningYear = 2003

If IsLeapYear(BeginningYear) = True Then HoursinYear = 8784
Else: HoursinYear = 8760
End If

End Sub

I keep getting an error message saying "Compile Error:Expected Array".
It then highlights the "IsLeapYear" within my If statement.

Can anyone tell me what I am doing wrong?

TS
 
T

Tom Ogilvy

Your syntax is screwed up. Your if statement is written like a single line
if statement. You either need to move the command to the next line or put
in a statement separator character (you haven't gotten to that error yet)

If IsLeapYear(BeginningYear) = True Then: HoursinYear = 8784
Else: HoursinYear = 8760
End If

or

If IsLeapYear(BeginningYear) = True Then
HoursinYear = 8784
Else: HoursinYear = 8760
End If

The expected array would be because IsLeapYear function isn't visible to
your main procedure - You apparently have it in a separate module and since
you made it private, it can't be seen in this module so it looks like an
array in your statement.

IsLeapYear must be in the same module if you make it private.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top