Mar*_*not 4 excel vba excel-vba
我正在尝试编写一个简单的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
Run Code Online (Sandbox Code Playgroud)
这是Sub我用来测试的:
Sub Test()
Dim TC As Range
Dim ans As Variant
Set TC = Range("Y53")
ans = IsG10(TC)
End Sub
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多东西来使其工作,删除了错误处理,返回一个字符串而不是一个bool ......没有任何作用.我看不出任何明显的UDF错误.
谢谢!
您需要重命名您的功能. ISG10是一个有效的单元格地址,因此当您将公式放在单元格中时=ISG10(A1),Excel无法正确解析它.当我将其更改为时,它工作得很好Function Foobar(Cur As Range) As Boolean.
| 归档时间: |
|
| 查看次数: |
1324 次 |
| 最近记录: |