Forum Discussion
mikemilstead
Sep 12, 2024Copper Contributor
Select entire sheet then sort on one column (automated)
Total newb here... This should be very simple. Automate > Record Actions Right-Click to the left of Column A (This highlights the entire sheet) Sort > Custom Sort Sort on Col J ("Amount" is the ...
- Sep 12, 2024
I'm not sure how recorder works, the script could be
function main(workbook: ExcelScript.Workbook) { const range = workbook .getActiveWorksheet() .getUsedRange() const sortedColumnIndex = range .getRow(0) // get first row, i.e. headers .find("Amount", { completeMatch: true }) .getColumnIndex() range.getSort().apply( // apply to entire range [{ ascending: true, // sort order key: sortedColumnIndex // on column to sort }], false, //case insensitive true, // range with headers ExcelScript .SortOrientation .rows // sort by rows ) }
We select only range with data, not entire sheet. Find column number for the cell with "Amount". Apply sorting to entire range, not to one column. Use above column as one on which we do sorting.
SergeiBaklan
Sep 12, 2024Diamond Contributor
As for #3 didn't catch what exactly you are trying to do. Currently sort orientation is columns. That means values in second row of the range (key=1, numbering starts from zero) are taken, and columns are placed in order according to values in that row.
Only one sorting key works.
If you'd like to sort the range by rows that's as in previous case.
mikemilstead
Sep 12, 2024Copper Contributor
- SergeiBaklanSep 12, 2024Diamond Contributor
Multicolumn sort could be
function main(workbook: ExcelScript.Workbook) { const range = workbook .getActiveWorksheet() .getUsedRange() const columnIndex = (header: string): number => range.getRow(0) .find(header, { completeMatch: true }) .getColumnIndex() range.getSort().apply( [ { key: columnIndex("Customer Name"), ascending: true } , { key: columnIndex("Description"), ascending: true } , { key: columnIndex("Date"), ascending: true } ], false, true, ExcelScript .SortOrientation .rows) }
- mikemilsteadSep 13, 2024Copper ContributorPerfect!
Thank you for all your help.- SergeiBaklanSep 13, 2024Diamond Contributor
mikemilstead , you are welcome