Look closely at your original macro."normally", the sort technique is to 
establish the sort "keys"(multiples allowed)Then, set the overall range to be 
sorted and apply the "keys".
So, if your data is in Columns DA:DBYou'd first define how to sort column DA  
(SortFields.Add Key:=Range("DA1:DA7986")...)then, if you're sorting also by DB, 
you'd do that separately.
THEN, sort the data with:.SetRange Range(FinalSearch)
the SortFields should be single columns, so it wouldn't be DA1:DB... it would 
be DA1:DA...
So you can't user FinalSearch in both places.
At the most you could use:FinalRow = 7986
SortFields.Add Key:=Range("DA1:DA" & FinalRow) _
and .SetRange Range(("DA1:DB" & FinalRow)
Secondly:
Do you have data BELOW row 7986 in the DA:DB columns that you do not want 
sorted?
I often record a macro then simply change the row to 65000 (since my files 
sometimes are shared with Excel 2003 users)
so, changing your macro to:
ActiveWorkbook.Worksheets("Data Sheet").Sort.SortFields.Add Key:=Range( _ 
        "DA1:DA65000"), SortOn:=xlSortOnValues, Order:=xlAscending, 
DataOption:= _ 
        xlSortNormal 
    With ActiveWorkbook.Worksheets("Data Sheet").Sort 
        .SetRange Range("DA1:DB65000") 

Paul-----------------------------------------
“Do all the good you can,
By all the means you can,
In all the ways you can,
In all the places you can,
At all the times you can,
To all the people you can,
As long as ever you can.” - John Wesley
----------------------------------------- 

    On Thursday, January 28, 2016 11:05 PM, "rcaircraf...@gmail.com" 
<rcaircraf...@gmail.com> wrote:
 
 

 

I am wanting to use a variable to sort out the two required columns. the number 
of rows will change slightly so I need to use a variable. I have worked out how 
to return the cell reference and have a standard macro working Example 1 
Example 2 however returns an error can someone please help with this.  
| EXAMPLE 1 |
| Sub Macro7() |
| ' |
|     Range("DA1:DB7986").Select |
|     ActiveWorkbook.Worksheets("Data Sheet").Sort.SortFields.Clear |
|     ActiveWorkbook.Worksheets("Data Sheet").Sort.SortFields.Add Key:=Range( _ 
|
|         "DA1:DA7986"), SortOn:=xlSortOnValues, Order:=xlAscending, 
DataOption:= _ |
|         xlSortNormal |
|     With ActiveWorkbook.Worksheets("Data Sheet").Sort |
|         .SetRange Range("DA1:DB7986") |
|         .Header = xlGuess |
|         .MatchCase = False |
|         .Orientation = xlTopToBottom |
|         .SortMethod = xlPinYin |
|         .Apply |
|     End With |
| End Sub__________________                                                     
               
| EXAMPLE 2 |
| Sub Macro8() |
|  |
| ' |
| Dim FinalSearch As String |
| FinalSearch = "DA1:DB7986" |
|  |
| ' |
|     Range(FinalSearch).Select |
|     ActiveWorkbook.Worksheets("Data Sheet").Sort.SortFields.Clear |
|     ActiveWorkbook.Worksheets("Data Sheet").Sort.SortFields.Add Key:=Range( _ 
|
|         FinalSearch), SortOn:=xlSortOnValues, Order:=xlAscending, 
DataOption:= _ |
|         xlSortNormal |
|     With ActiveWorkbook.Worksheets("Data Sheet").Sort |
|         .SetRange Range(FinalSearch) |
|         .Header = xlGuess |
|         .MatchCase = False |
|         .Orientation = xlTopToBottom |
|         .SortMethod = xlPinYin |
|         .Apply |
|     End With |
| End Sub |

  |

-- 
Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
https://www.facebook.com/discussexcel
 
FORUM RULES
 
1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.
2) Don't post a question in the thread of another member.
3) Don't post questions regarding breaking or bypassing any security measure.
4) Acknowledge the responses you receive, good or bad.
5) Jobs posting is not allowed.
6) Sharing copyrighted material and their links is not allowed.
 
NOTE : Don't ever post confidential data in a workbook. Forum owners and 
members are not responsible for any loss.
--- 
You received this message because you are subscribed to the Google Groups "MS 
EXCEL AND VBA MACROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to excel-macros+unsubscr...@googlegroups.com.
To post to this group, send email to excel-macros@googlegroups.com.
Visit this group at https://groups.google.com/group/excel-macros.
For more options, visit https://groups.google.com/d/optout.


 
  

-- 
Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
https://www.facebook.com/discussexcel

FORUM RULES

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.
2) Don't post a question in the thread of another member.
3) Don't post questions regarding breaking or bypassing any security measure.
4) Acknowledge the responses you receive, good or bad.
5) Jobs posting is not allowed.
6) Sharing copyrighted material and their links is not allowed.

NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
members are not responsible for any loss.
--- 
You received this message because you are subscribed to the Google Groups "MS 
EXCEL AND VBA MACROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to excel-macros+unsubscr...@googlegroups.com.
To post to this group, send email to excel-macros@googlegroups.com.
Visit this group at https://groups.google.com/group/excel-macros.
For more options, visit https://groups.google.com/d/optout.

Reply via email to