2013-03-25 81 views
1

下面是一個帶有switch語句的示例函數,但是我很難理解函數如何等於所提供的參數?VBA函數=函數參數?

Function getnumber(value, method) As String 
    Dim i, j As Integer 
    Dim rtn As String 
    j = 0 
    Select Case method 
    Case 0: 


    getnumber = value 


    Case 1: 
     rtn = "" 
     For i = 1 To Len(value) 
      If IsNumeric(Mid(value, i, 1)) Then 
       j = j + 1 
       rtn = rtn & Mid(value, i, 1) 
      Else 
       If j > 3 Then Exit For 
       j = 0 
       rtn = "" 
      End If 
     Next 
     If rtn = "" Then getnumber = "" Else getnumber = rtn 
    Case Else: 
     MsgBox ("Invalid method in getnumber") 
    End Select 
End Function 

「getnumber = value」真的讓我困惑。 Where getnumber是函數和值是getnumber的參數函數

任何想法?

+0

'getnumber = value'是返回值 - 如果調用代碼調用'getnumber(value,method)',它將接收'value'。 – assylias 2013-03-25 11:43:22

+3

與您的問題無關,但您的功能缺少大量的變量標註。 'Dim i,j As Integer'應該是Dim i As Integer,j As Integer',值和方法也應該被標註(我認爲'As Variant'或'As String'和'As Integer') – 2013-03-25 11:49:23

回答

6

在VBA中,可以使用語法YourFunctionName = ValueToReturn指定函數的返回值。

因此,getnumber = value只是將value設置爲要從函數返回的值。

+0

感謝您的清除它爲我起彼得 – iswinky 2013-03-25 13:25:38