我很擅長在excel中編寫函數(主要是編寫子程序)。Excel函數格式
我想知道下面的函數聲明是什麼意思?
public function function_name(args as string) as string
我明白了一切高達as string
第二個實例。這是我新的東西,我不知道這是怎麼回事,只是聲明不同:
public function function_name(args as string)
我很擅長在excel中編寫函數(主要是編寫子程序)。Excel函數格式
我想知道下面的函數聲明是什麼意思?
public function function_name(args as string) as string
我明白了一切高達as string
第二個實例。這是我新的東西,我不知道這是怎麼回事,只是聲明不同:
public function function_name(args as string)
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").Value
和Range("A1")
- 都是一樣的,因爲.Value
是Range
對象的默認屬性。
現在發生的情況是,編譯器評估引擎蓋下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
類型的
不知道怎麼熟悉,例如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個字符,如果沒有返回您傳遞給函數字符串)
像往常一樣的好答案:) –
第二個「是」表示該類型的函數返回。 該函數返回一個字符串,你可以通過這種方式返回函數內部的值:
function_name="Value"
從http://www.cpearson.com/excel/writingfunctionsinvba.aspx:
Function RectangleArea(Height As Double, Width As Double) As Double
RectangleArea = Height * Width
End Function
該函數接受作爲輸入的兩個Double類型變量,高度和 寬度,並返回一個Double作爲其結果。
如果您對Procedure
s熟悉,請將Function
視爲返回值的Procedure
。 as String
作爲結尾指示返回值的類型。
返回一個值方法是,如果它是一個變量使用函數的名稱:
Public Function ConvertToUpperCase(str as string) as string
ConvertToUpperCase = UCase(str)
End Function
'公共功能函數名(參數爲字符串)'是完全一樣'公共函數function_name(ByRef args as string)作爲變體 – user3357963
@ooo我認爲這已經在我的答案中提到:) – 2013-12-18 23:18:32
真的,你確定嗎? – user3357963