title: Non-volatile UDF always recalculating
body: <p>I am trying to make a non-volatile UDF but it seems not possible. So here is a my very simple test-UDF: </p>
  
  <pre><code>Option Explicit
  Dim i As Integer
  
  Sub Main()
  
  i = 0
  [A1] = "zyy"
  MsgBox i
  
  End Sub
  
  Function Test(rng As Range)
  Application.Volatile (False)
  
  Test = rng.Value
  i = i + 1
  
  End Function
  </code></pre>
  
  <p>I got a otherwise empty worksheet that uses this function a couple of times, and every time I call Main() and change any cell on the sheet with the UDFs all of them recalculate. How can I make this (any) UDF no-volatile? The Application.Volatile (False) should have that effect but obviously doesn't work. </p>
  
  <p>Edit: If I change a cell manually it works like intended, it only recalculates when I change a cell via VBA. Is this normal behaviour or can I change it?</p>