Excel sorting in VBScript

G

Guest

I'm having trouble with Excel sorting in a VBScript. I have a number of
cells containing data, starting at row 4. I'm trying to sort each column
from row 4 through to the end using the following code:

Set objRange = objExcel.Range(Chr(64+column)+"4", Chr(64+column)&row ).Select
Set objRange2 = objExcel.Range(Chr(64+column)+"4")
objRange.Sort objRange2,,,,,,,1

objRange is my range, objRange2 is the first cell of the column I wish to
sort.

I also tried:

objRange.Sort objRange,,,,,,,1

The sort method does not work in VBScript, nor do a large number of
variations of it! I know from a lot of reading that some Excel functionality
isn't exposed too well in VBScript...

However, the following works for the entire column, using a header row:

Set objRange = objExcel.ActiveCell.EntireColumn
objRange.Sort objRange,,,,,,,1

Any suggestions would be much appreciated.
 
B

Bob Phillips

Not tested, but try

Set objRange = objExcel.Range(Chr(64+objExcel.column())&"4",
Chr(64+objExcel.column())&row ).Select
Set objRange2 = objExcel.Range(Chr(64+objExcel.column())&"4")
objRange.Sort objRange2,,,,,,,1


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
G

Guest

bob, thanks for the quick reply but it doesn't work ;)

it's not selecting my range - the objExcel.column() breaks it - my
'Chr(64+column)' generates the column by letter (i know that I have less than
26 columns) and adding the "4" makes reach column that I wish to sort start
at row 4.


g.
 
T

Tom Ogilvy

Assume objExcel.Column is a reference to the column you want:

Set objRange = objExcel.Range(Chr(64+objExcel.column())&"4",
Chr(64+objExcel.column())&row )
objRange.Sort objRange(1),,,,,,,1


another

With Cells(4,ObjExcel.Column)
.Resize(row-1,1).Sort .Item(1),,,,,,,1
End With
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top