2013-12-18 85 views
1

我很擅長在excel中編寫函數(主要是編寫子程序)。Excel函數格式

我想知道下面的函數聲明是什麼意思?

public function function_name(args as string) as string

我明白了一切高達as string第二個實例。這是我新的東西,我不知道這是怎麼回事,只是聲明不同:

public function function_name(args as string)

+2

'公共功能函數名(參數爲字符串)'是完全一樣'公共函數function_name(ByRef args as string)作爲變體 – user3357963

+0

@ooo我認爲這已經在我的答案中提到:) – 2013-12-18 23:18:32

+1

真的,你確定嗎? – user3357963

回答

3

public function function_name(args as string) as string

  • 公共是訪問定義。公衆是指在整個VBA項目

  • 功能來訪問意味着它是一個函數(意味着它應該返回的東西

  • 函數名是函數的名稱(不能從1開始或下劃線)

  • ARGS應的功能的主體內使用的本地參數名

  • ARGS作爲字符串表示該函數被期待args是一個String

  • ...)的作爲字符串表示該函數將返回一個String數據類型。所以,如果你已經定義了一個String類型的變量,你可以使用該函數爲它賦值。


標準(默認)聲明沒有明確指定要返回的類型返回Variant

這是一樣聲明一個變量,而無需指定其類型。

Dim aVariable

與相當於

Dim aVariable as Variant

因爲Variant是默認類型。

因此as Variant總是存在,除非指定了不同的類型。因爲它是默認的,你不必明確代碼它。

這在某種程度上類似於Range("A1").ValueRange("A1") - 都是一樣的,因爲.ValueRange對象的默認屬性。

現在發生的情況是,編譯器評估引擎蓋下aVariable的值,並將該類型賦值給該變量。

比方說,你有

Sub Main() 

    Dim varVariable 
    Dim strVariable As String 

    varVariable = "hello world" 
    strVariable = "hello world" 

    MsgBox "varVariable is of " & TypeName(varVariable) & " type" & vbCrLf & _ 
      "strVariable is of " & TypeName(strVariable) & " type" 

End Sub 

就像我現在說都是String類型的

enter image description here


不知道怎麼熟悉,例如C#,你不過是在C#在聲明訪問修飾符之後立即聲明返回類型,即。

public string myFunction(string args) 

所以在VB/VBA第二as String是在C#(公共之後)等於第一string

在C#中,而在VBA更換return關鍵字你可以使用一個return關鍵字功能名稱。因此,在VBA一個非常基本的樣本

Public Function ReturnFirst3Characters(args As String) As String 
    ReturnFirst3Characters = IIf(Len(args) > 2, Left(args, 3), args) 
End Function 

函數返回你傳遞給它(字符串的前3個字符,如果字符串長度超過3個字符,如果沒有返回您傳遞給函數字符串)

+2

像往常一樣的好答案:) –

0

第二個「是」表示該類型的函數返回。 該函數返回一個字符串,你可以通過這種方式返回函數內部的值:

function_name="Value"

0

如果您對Procedure s熟悉,請將Function視爲返回值的Procedureas String作爲結尾指示返回值的類型

返回一個值方法是,如果它是一個變量使用函數的名稱:

Public Function ConvertToUpperCase(str as string) as string 
    ConvertToUpperCase = UCase(str) 
End Function