VBA for Excelで書いているinsheet関数に問題があります。私が最終的に達成しようとしているのは、ワークシート上のセル内から呼び出され、呼び出されるセルの下のデータポイントの範囲を出力するExcel関数です(たとえば、財務データプロバイダのExcel関数= BDPブルームバーグ)。出力するデータポイントの数がわからないので、あらかじめ出力範囲を指定することはできません。Excel VBA:シート機能コードがシート上の他のセルにアクセスできない
エクセルでは、関数の呼び出し元のセルとは別に、関数内のシート上のセルを編集することはできません。
私はこの問題のために、問題を特定するための簡単なプログラムを作成しました。
以下の関数は、= test(10)経由でExcelシートから呼び出されたとき、呼び出されたセルの下に1から10までの整数のリストを生成します。
コードは非常に単純ですが、この式が呼び出されるワークシート(#Valueエラーを除く)では何も起こりません。私は、例えばのように、コードの他のいくつかの仕様を試してみました:
Function test(number As Integer)
Dim tempRange As Range
Set tempRange = Worksheets("Sheet1").Range(Application.Caller.Address)
For i = 1 To number
tempRange.Offset(i, 0) = i
Next i
End Function
を不思議なことに、このコードの最後の作品では、コマンド「のDebug.Print tempRange.addressは」住所を印刷んどの機能からが呼び出されます。
問題は、ワークシート内の値をワークシート関数内から更新しているようです。誰かが別の方法でこれを達成することが可能かどうかについていくつか指導してください。 Excelの計算方法は、その前提に構築されているので、
おかげで多くは、J
[ExcelでUDFを使用してワークシートを更新する]の可能な複製(http://stackoverflow.com/questions/23433096/using-a-udf-in-excel-to-update-the-worksheet) – Comintern