Welcome to Tech Support Forum home to more then 136,000 problems solved. Issues have included: Spyware, Malware, Virus Issues, Windows, Microsoft, Linux, Networking, Security, Hardware, and Gaming Getting your problem solved is as easy as:
1. Registering for a free account
2. Asking your question
3. Receiving an answer

Registered members:
* Get free support
* Communicate privately with other members (PM).
* Removal of this message
* See fewer ads.
* And much more..

 



Want to know how to post a question? click here Having problems with spyware and pop-ups? First Steps
Go Back   Tech Support Forum > Microsoft Support > Microsoft Office support
User Name
Password
Site Map Register Donate Rules Blogs Mark Forums Read


Microsoft Office support MS Office support forum

Reply
 
LinkBack Thread Tools
Old 04-02-2008, 08:43 AM   #1 (permalink)
Registered User
 
Join Date: Apr 2008
Posts: 1
OS: xp


Sorting in excel with VBA

I'm trying to create a macro that will sort data in multiple worksheets using VBA. This is what I have so far, but I keep running into an error after 'Do'.
When I put in the name of the worksheet instead of 'i' it works but i'd rather not have to do that for every worksheet since there are a lot of them
Any help?

Sub FixError()

Dim i As Integer

i = 2

Do
Worksheets(i).sort.SortFields.Add Key:=Range("D2:D1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Worksheets(i).sort.SortFields.Add Key:=Range("E2:E1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Worksheets(i).sort.SortFields.Add Key:=Range("F2:F1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Worksheets(i).sort
.SetRange Range("A1:AZ1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
i = i + 1
Loop Until i = 17

End Sub
sheyer is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit!
Reply With Quote
Important Information
Join the #1 Tech Support Forum Today - It's Totally Free!

TechSupportForum.com is a leading support website for your computer needs. We offer free, friendly and personalized computer support. Why pay to have your computer fixed when you can do it for free.

Join TechSupportforum.com Today - Click Here

Old 04-02-2008, 03:06 PM   #2 (permalink)
Registered User
 
Join Date: Jan 2008
Location: Harpers Ferry, WV
Posts: 400
OS: OS X 10.4.x


Re: Sorting in excel with VBA

Sheyer,

Welcome first off. Second, I don't have a copy of Excel handy to test, but, there is no sort method for the Worksheets. Sort only applies to a range.

So, instead of
Worksheets(i).sort.SortFields.Add Key:=Range("D2:D1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Try something like
Worksheets(i).Range("D2:D1000").sort Key1:=Worksheets(i).Columns("D") SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Again, can't be sure of the exact syntax, but, I'm sure you need the range in the method call.
ShosMeister is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Reddit!
Reply With Quote
Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




All times are GMT -7. The time now is 12:53 AM.



Copyright 2001 - 2009, Tech Support Forum
Home Tips Plus | Outdoor Basecamp | Automotive Support Forum

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85