2013-03-13 47 views
0

目前我有一個vba,我使用它作爲excel中的加載項來調用某些UDF。函數需要參數(如數字範圍)以及有關這些數字和常量的一些屬性。在vba中使用參數

例如ROR(some_range_of_numbers,每週)

第二個參數有以下選項。它可以是每日或每週或每月或季度或年度。如果每天我使用365,如果它的每週我使用52,如果它的每月我使用12如果它的Qtrly然後我使用4和年度我使用1作爲在UDF公式的組成部分之一。

現在,我的問題是當用戶想要使用該功能,我想迫使用戶每天或每週輸入等我記得有關在VB中使用類型或參數的東西。但我在這裏失去了。任何幫助將不勝感激。

感謝

回答

0

試試下面的功能:

Function ROR(rng As Range, interval As String) 


    Dim intervalNum As Integer 
    select Case LCase(interval) 

    Case "daily": 
     intervalNum = 365 
    Case "weekly": 
     intervalNum = 52 
    Case "monthly": 
     intervalNum = 12 
    Case "quarterly": 
     intervalNum = 4 
    Case "annual": 
     intervalNum = 1 
    End Select 

Debug.Print intervalNum 

End Function 

更新代碼註釋後:

Enum interval 
    daily = 365 
    weekly = 52 
    monthly = 12 
    quarterly = 4 
    annual = 1 
End Enum 

Function ROR(rng As Integer, val As interval) 


End Function 

您也可以使用這種類型,其中你會得到它的下拉列表。

Type interval 
    daily As Integer 
    weekly As Integer 
    monthly As Integer 
    quarterly As Integer 
    annual As Integer 
End Type 

enter image description here

+0

我已經有這個。我正在尋找下拉類型的參數列表。 – cjv 2013-03-13 11:50:51

+0

@cjv修改了代碼。 – 2013-03-13 12:11:13

+0

好吧我正在檢查...在vba ... ENUM,這是我正在尋找...我認爲...檢查....現在 – cjv 2013-03-13 12:18:01