you can cut your select cases by using multiple criteria
from you code above

vb Code:
  1. Select Case myCols
  2. Case 1
  3.     .Cells(1, col).ColumnWidth = 8.57
  4. Case 2, 3
  5.     .Cells(1, col).ColumnWidth = 8
  6. 'Case 3
  7. '    .Cells(1, col).ColumnWidth = 8
  8. 'Continues to case 26
  9. End Select
so you could use like
case 2 to 6, 9 to 13, is >21

you can also use case else for any default value
another option is to set the col width for the entire range first, then only change the cols that are different

select case only evaluates conditions until it finds a match so, for speed, order the cases by the expected most common result (does not apply in this example, as each number is only used once)

also in the above code mycols is always made = to col, so it is not required, you can just select case col