2017-06-04 5 views
0

Ich möchte eine Funktion erstellen, wo ich einen Parameter verwende, so dass die Funktion einen anderen Wert zurückgibt. In diesem Fall möchte ich "Links" in eine Funktion einfügen und dann sollte die Funktion mir "Links" zurückgeben (Ich brauche eine 'Übersetzungen', also verwende ich Fall von if Anweisungen.Kompilierfehler beim Schreiben der Rückkehrfunktion

Ich habe die folgende Funktion

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 

Dies jedoch gibt mir einen Compiler-Fehler, dass eine Matrix erforderlich ist. Irgendwelche Gedanken darüber, wie ich diese Arbeit bekommen?

+0

Edward Ich denke, Sie haben die Verwendung von Funktion und einem Sub verwechselt, wie Kostas darauf hingewiesen hat. Eine Funktion gibt einen Wert von einer Art zurück, ein Sub tut etwas Bestimmtes. Es ist ein subtiler Unterschied und ich habe es stark vereinfacht, aber seine Antwort ist richtig. – iShaymus

Antwort

1

Sie geben das Argument ByRef und es ist Wert zu ändern. Sie brauchen nicht ein Funktion für das. Funktionen retun Werte

Da Sie jedoch eine Funktion verwenden, warum gibt die Funktion nicht den gewünschten Wert zurück?

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 
Verwandte Themen