I think the problem is with the default value for the keys that aren't specified.
This works with both early and late binding:
rangeToSort.Sort( Key1=sheet.Columns( 3 ), Order1=1 , Header=1, Key2=pythoncom.Missing, Key3=pythoncom.Missing )
Roger