3
通貨コードがG10であるかどうかを示す簡単なUDFを作成しようとしています。 VBAのサブでテストするとうまく動作しますが、スプレッドシートで使用しようとすると#REFが得られます。 ユーザー定義関数はワークシートの#REFを返し、VBAで動作します
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 Test()
Dim TC As Range
Dim ans As Variant
Set TC = Range("Y53")
ans = IsG10(TC)
End Sub
、ブール値の代わりに文字列を返す、エラー処理を削除...何も動作しません。私は明らかなUDFの間違いを見ることができません。
ありがとうございます!
Excelで '= IsG10(...)'を '= ISG10(...)'に変更して、すべての文字を大文字にしてヒントを付けることができます。 –
がよく目に付きます。 ++ – cyboashu
'= Module1.ISG10(C3)'と完全修飾されていると動作します。ここで、 'module1'は関数が格納されているモジュール名です。 –