title: Strange behavior when assigning a VBA array to formulas of an excel range
body: <p>This is strange... Someone has some knowledge or can figure out why is this happening?</p>
  
  <p>In the past, I was able to assign an array of formulas to an Excel range (<em>Example of fast assignment:</em> <code>Range("A1:A1000") = ArrayOfFormulas</code> ). It was working fine and <em>FAST</em> (<strong><em>very</em></strong> <em>FAST</em>) compared to assign cell by cell (<em>Example cell by cell: <code>Range("A" &amp; i).Formula=ArrayOfFormula(i)</code> inside a loop. Is slow!</em>). </p>
  
  <p>I'm working with Excel 2013 now, and when trying to assign the formulas stored in an array of strings to an excel range it doesn't work (The excel shows the formulation but not the calculation as per left part of the picture below) an unfortunately I cannot retrieve old code to compare. For example the following code shows "=1+2" instead of "3" in the range A1 to A1000. </p>
  
  <pre><code>Sub AssignFormulas_1()
      Dim i as Long
      Dim FORML_ARRAY(1 To 1000, 1 To 1) As String
      For i = 1 To 1000
           FORML_ARRAY(i, 1) = "=1+2"
      Next i
      Range("A1:A1000").Formula = FORML_ARRAY  '&lt;- Don't work as formula
                                               '   It put the value!
  End Sub
  </code></pre>
  
  <p>However, when I don't use the array of formulas it work fine (all cells shows "3" instead of "=1+2" as per the right part of the picture below). Here the code:</p>
  
  <pre><code>Sub AssignFormulas_2()
      Dim i as Long
      Dim FORML_SINGLE As String
      FORML_SINGLE = "=1+2"
      Range("A1:A1000").Formula = FORML_SINGLE '&lt;- works ok, not practical for my
                                               '   real life case as I need 
                                               '   different formula for each cell.
  End Sub
  </code></pre>
  
  <p>The following code work also well (In this case I assign formulas cell by cell, so is more flexible but sloooowly for large formulas). </p>
  
  <pre><code>Sub AssignFormulas_3()
      Dim i as Long
      Dim FORML_ARRAY(1 To 1000, 1 To 1) As String
      For i = 1 To 1000
           FORML_ARRAY(i, 1) = "=1+2"
           Range("A1:A" &amp; i).Formula = FORML_ARRAY(i, 1) '&lt;- works ok, but slowly
      Next i
  End Sub
  </code></pre>
  
  <p>The pictures with the output of all above code:</p>
  
  <p><img src="https://i.stack.imgur.com/9t1bP.png" alt="Example of result wrong (left) and correct (right)"></p>
  
  <hr>
  
  <p>Note: The cells were properly formatted as number, not text!</p>