'How can I separate a column into their own sheet using maps?

I am trying to use this map provided by a previous question I had.

In this case, it takes the sales rep's name, creates a sheet with their name and then moves all orders that belong to them to their sheet. This is what the code looks like.

function sortByRep(sheet){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("All Orders");
  var range = sheet.getRange("A2:H" + sheet.getLastRow());
  var values = range.getValues();
  var sheets = [...new Set(values.map(r => r[6]))].reduce((o, e) => (o[e] = ss.getSheetByName(e) || ss.insertSheet(e), o), {});
  [...values.reduce((m, r) => m.set(r[6], m.has(r[6]) ? [m.get(r[6]), r] : r), new Map())]
    .forEach(([k, v]) => {
      var s = sheets[k];
      if (s) s.getRange(s.getLastRow() + 1, 1, v.length, v[0].length).setValues(v);
    });

But I get this error:

Exception: The parameters (number,number,number,null) don't match the method signature for SpreadsheetApp.Sheet.getRange.

I think it has to be because there are spaces in the names? But I'm not sure.enter image description here

I have added this picture as an example. I want my script to make a new sheet with the sales rep name and move all of their orders to that sheet.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source