title: Google Sheets: Batch getRangeByName via Apps Script
body: <p>Is it possible to get multiple <strong>ranges by name</strong> with one call? I have a complex function that needs to grab many ranges by name and Spreadsheet.getRangeByName(name) is slowing down my script significantly. Sometimes these calls take ~2 seconds, and sometimes a single call can take ~45 seconds.</p>
  
  <p>Restrictions:</p>
  
  <ul>
  <li>I need grab the range (not just value(s)) because the script formats, grabs A1Notation for later use, offets, etc.</li>
  <li>The addresses of these named ranges change as a result of other functions</li>
  </ul>
  
  <p>What I have tried:</p>
  
  <ul>
  <li>Store the Range object in the Document Properties. This doesn't seem to work because Ranges only have functions. JSON.stringify(Range) returns nothing.</li>
  <li>Use Google Sheets API v4's batchGet function but it appears to be getting values only</li>
  </ul>