title: Optional ranges in vba function
body: <p>I am trying to return the columns count on a range, sometimes I need one range, but, sometimes I need more than one range.</p>
  
  <p>I have put in optional ranges so I can choose multiple ranges. If I reference a range in the function prototype that I have not supplied in the spreadsheet I get the #Value! error.</p>
  
  <p>I need a way to check if the optional ranges are null, void empty etc. so I don't have to reference the range.</p>
  
  <p>This is the VBA Function Prototype:-</p>
  
  <pre><code>Function GetColoumnCount(ARange1 As Range, Optional ARange2 As Range, Optional ARange3 As Range, Optional ARange4 As Range) As Integer
  
      Dim Result As Integer
      Result = 0
  
      Result = ARange1.Columns.Count ' This works
      Result = ARange1.Columns.Count + ARange2.Columns.Count ' This doesn't work
  
      GetColoumnCount = Result    
  End Function
  </code></pre>
  
  <p>In my spreadsheet I have to enter this in a cell for the function to work.<br>
  <code>=GetColoumnCount(BC34:BK34, BC35:BD35, BE35:BF35, BG35:BH35)</code><br>
   this defeats the purpose of having optional arguments.</p>