【发布时间】:2016-08-10 12:31:30
【问题描述】:
我正在尝试编写一个简单的 UDF,它可以告诉我货币代码是否为 G10。当我在 VBA 的子程序中测试它时它工作正常,但是当我尝试在电子表格中使用它时,我得到 #REF。
Function IsG10(Cur As Range) As Boolean
Dim G10s As Variant
Dim Rslt As Boolean
Dim Cross As Variant
Cross = Cur.Value
Rslt = False
G10s = Array("USD", "GBP", "EUR", "CHF", "NOK", "SEK", "AUD", "NZD", "CAD", "JPY")
If Not (Application.WorksheetFunction.IsText(Cross)) Or Len(Cross) > 3 Then
IsG10 = CVErr(xlErrNA)
Else
For Each i In G10s
If Cross = i Then Rslt = True
Next i
End If
IsG10 = Rslt
End Function
这是我用来测试的 Sub:
Sub Test()
Dim TC As Range
Dim ans As Variant
Set TC = Range("Y53")
ans = IsG10(TC)
End Sub
我已经尝试了很多方法让它工作,删除了错误处理,返回一个字符串而不是一个布尔值......没有任何效果。我看不到任何明显的 UDF 错误。
谢谢!
【问题讨论】: