![]() |
![]() |
![]() |
|||||
![]() |
![]() |
![]() |
![]() |
![]() |
|||
| 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: * 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 |
|
|||||||
| Microsoft Office support MS Office support forum |
![]() |
|
|
LinkBack | Thread Tools |
|
|
#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 |
|
|
|
| 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 |
|
|
#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. |
|
|
|
![]() |
| Thread Tools | |
|
|