2017-06-04 53 views
0

我想创建一个函数,我使用一个参数,因此该函数返回另一个值。在这种情况下,我想在一个函数中插入“链接”,然后该函数应该让我回到“左”(我需要一个'翻译',所以我使用if语句的情况。编写与写回函数错误

我有以下功能

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 

然而,这给了我一个矩阵需要编译错误。我如何能得到这个工作?

+0

爱德华我认为你已经混淆了函数和Sub的使用,正如Kostas指出的那样。一个函数返回某种类型的值,一个子函数做一些特定的事情。这是一个微妙的差异,我已经简化了它,但他的回答是正确的。 – iShaymus

回答

1

你传递参数ByRef和改变它任何思考的价值。你不需要一函数为retun值。

既然你正在使用一个函数,为什么你没有函数返回你想要的值?

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