セルを引数として受け取り、そこからさまざまなRange.Offsetを使用して動作するVBA関数を作成しようとしています。この関数はワークシートのセルで呼び出されます。テストのために、私はこの単純なスクリプトを使用しています:私は仕事へのセル参照を取得することができるかどうかを確認するにはExcel:ワークシートからvba関数を呼び出すときに現在のセルを引数として渡します。
にPublic Function testPublic(targetCell As Range) As Boolean
targetCell.Offset(0, 3).Value2 = "Test is successful!"
testPublic = True
End Function
を、私はそのようなC5のような単純な参照を渡すが、私は唯一#VALUEを入手します!エラー。これに何が間違っているかわからない。
はまだ機能コードは以下の通りです
If testPublic(targetCell:=Range1) Then
MsgBox "success"
End If
コードを呼び出す以下
あなたはワークシート内の別のセルを更新するために、ワークシートからUDFと呼ばれる機能を使用することはできません。機能は、機能のみを含むセルに値を返すことができます(配列数式を複数の値を返すことができますが、数式が入力されたセルだけに戻ります)。詳細については、https://support.microsoft.com/en-us/kb/170787 –
を参照してください。確かに@TimWilliamsが実際に問題になっています。私は細胞操作コードを削除し、それは動作します。おそらくあなたは答えとして投稿できるので、私はそれを1つに設定することができます – Raestloz