title: Convert entire range to lowercase without looping through cells Indirect
body: <p>I'm looking at VBA code that takes an entire range of cells and converts them into lowercase. I found the following:</p>
  
  <pre><code>[A1:A20] = [index(lower(A1:A20),)]
  </code></pre>
  
  <p>This works fine for a fixed range (don't entirely understand syntax, but found the following post:)</p>
  
  <p><a href="https://stackoverflow.com/questions/19985895/convert-an-entire-range-to-uppercase-without-looping-through-all-the-cells">Post detailing code above</a></p>
  
  <p>My problem is this:</p>
  
  <p>I would like to be able to set the range dynamically as I'm dealing with changing range sizes. However, the following doesn't work, and I can't seem to be able to use INDIRECT() either in VBA.</p>
  
  <pre><code>Range("A1:A" &amp; n) = [index(lower(Range("A1:A" &amp; n)),)]
  </code></pre>
  
  <p>Is there a way to make this work? 
  I would really like to avoid using a for loop as I suspect this should be a lot faster..</p>