Edward de Goeij
Edward de Goeij

Reputation: 87

Compile error with writing return function

I want to create a function where I use one parameter so the function returns another value. In this case I want to insert "links" in a function and then the function should give me back "Left" (Im need a of 'translations' so therefore I use case of if statements.

I have the following function

Public Function newParameter(aParameter) As Integer
 Select Case aParameter
  Case Is = "Links"
   aParameter = "ppAlignLeft"
 End Select 
End Function

Sub finalFunction()
 Dim newParameter As String
 newParameter = newParameter(Links)
 MsgBox (newParameter)
End Sub

This however gives me a compile error that a matrix is required. Any thoughts on how I can get this working?

Upvotes: 0

Views: 30

Answers (1)

Kostas K.
Kostas K.

Reputation: 8518

You're passing the argument ByRef and change it's value. You dont need a function for this. Functions retun values.

Since you are using a Function though, why dont you have the Function return the value you want?

Public Function newParameter(ByVal aParameter As String) As String
 Select Case aParameter
  Case "Links":
   newParameter = "ppAlignLeft"
 Case "A":
   newParameter = "You passed A"
 Case Else:
   newParameter = "No match"
 End Select 
End Function

Sub finalFunction()
 Dim newParameter1 As String
 newParameter1 = newParameter("Links") 'This reads 'ppAlignLeft'
 MsgBox newParameter1
End Sub

Upvotes: 1

Related Questions