VBA在特定范围内将字符串评估为函数

时间:2014-12-08 21:46:34

标签: excel-vba vba excel

大家。我遇到了一个问题。我写了一个函数,它接受一个字符串作为参数,表示一个函数名和一个带参数的Arguments数组。我存储函数名称,后面跟着括号之间的所有参数,并用逗号分隔。然后调用Evaluate函数并将此变量传递给它。当我传递Global Scope中定义的函数名时,它工作正常,但我希望能够调用我编写的类中定义的私有函数。有什么建议吗?

Private Function fAsString(fname As String, ParamArray arguments() As Variant)
    
    tx = fname & "("
    
    For i = 0 To UBound(arguments)
        it = arguments(i)
        
        If TypeName(it) = "String" Then
            it = """" & LCase(it) & """"
        ElseIf TypeName(it) = "Date" Then
            it = "DateValue(""" & Month(it) & " " & Day(it) & ", " & Year(it) & """)"
        End If
        
        tx = tx & it & IIf(i = UBound(arguments), _
            ")", _
            ", ")
    Next
    
    fAsString = Evaluate(tx)
End Function

由于

0 个答案:

没有答案