2014-02-17 96 views
2

如果我的函數看起來像如何調用只傳遞一個可選參數的函數?

function(optional byval string1 as String,optional byval string2 as String,optional byval string3 as String) 

,我只想要調用由進入細胞"=function(string3)"提供string3的功能,我該怎麼辦呢?

回答

1

這有可能在以下兩種方式之一...

  1. 調用程序,並確定由 「跳躍」 unusued PARMS其可選參數被用於:
Function MyFunc(optional a as integer, _ 
       optional b as integer, _ 
       optional c as integer) as double 
    MyFunc = c * 3.14159 
End Function 

=MyFunc(,,12) <== called as UDF on worksheet or in VBA module 
  • 使用參數列表編碼您的函數:
  • Function MyFunc(args() As Variant) As Double 
        Dim numberOfArgs As Integer 
        Dim arg As Variant 
        Dim i As Integer 
        Dim answer As Double 
        numberOfArgs = UBound(args) 
        i = 1 
        For Each arg In args 
         Debug.Print "arg(" & i & ") = " & arg 
         answer = Int(arg) * 3.14159 
         i = i + 1 
        Next arg 
        MyFunc = answer 
    End Function 
    
    Sub test1() 
        Dim parms() As Variant 
        ReDim parms(1 To 3) 
        'parms(1) = ?? 
        'parms(2) = ?? 
        parms(3) = 21 
        Debug.Print MyFunc(parms) 
    End Sub 
    
    相關問題