2016-05-13 13 views
-4

私はVBAで特定のセルの循環参照の有無をチェックするExcel関数を構築したいと考えています。循環参照がある場合はブール "TRUE"を返し、それ以外の場合は "FALSE"を返すようにします。ここで失敗した試行は次のとおりです。VBAで循環参照を扱うにはどうすればよいですか?

残念ながら、これは#VALUE!評価セルの誤差。私はA1 = 1、A2 = 2、A3 = A1 + A2 + A3のワークシート上でテストしました。次に、B3 = CIRC_REF(A3)を設定します。

+3

読書を気にしなかったときは、何かを参考にしてはいけません。 – findwindow

+0

本質的にSOコミュニティにすべての作業を依頼しているので、「広すぎる」と投票することに投票します。トピックに関する良い質問にお問い合わせする方法については、ヘルプセンターの[質問]ヘルプセンターのページをご覧ください。また、努力の不十分な欠如と全体的に不明瞭な質問のために下落した。 –

答えて

0

この質問に対する最良の解決法は、関数を呼び出すのではなく、サブプロシージャでマクロを呼び出すことです。数式を含むセルを選択すると、セルに循環参照がある場合、プロシージャはブール値Trueをセルの1列目のセルに返します。この動作を変更するには、コードを変更する必要があります。たとえば、小さな変更によって、新しいシートに循環参照を含むセルのアドレス位置を記録することができます。コードは次のとおりです。

Sub mcrCircularReference() 
    Dim Cell As Range 
    Dim CircRefCell As Range 

    For Each Cell In Selection 
     Set CircRefCell = Worksheets("Sheet1").CircularReference 
     CircRefCell.Offset(0, 1).Value = True 
    Next Cell 
End Sub 
関連する問題