Hi ya'll-
I made a macro to see how excel writes the VBA code for sorting. I then took that same code and placed it in my excel file and changed the names and cell reference. But I keep getting an error at the range. The name of the sheet I want to sort is called "Timeline". I want to sort "A10:e300" by column D. The code for the quick macro I used as a reference is below. After that, is the code that I am using in my workbook.
***Quick macro sort code***
Sheets("Sheet2").Select
Range("E7:G15").Select
ActiveWorkbook.Worksheets(
"Sheet2").
Sort.SortF
ields.Clea
r
ActiveWorkbook.Worksheets(
"Sheet2").
Sort.SortF
ields.Add Key:=Range("G7:G15") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(
"Sheet2").
Sort
.SetRange Range("E7:G15")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Sheet1").Select
Range("C6").Select
end sub
***my VBA code***
Private Sub cmdCWUpdateTimeline_Click(
)
Dim rStart As Range
Dim rEnd As Range
Dim rng As Range
If MsgBox("Are you sure you want to update the timeline?", vbYesNo) = vbNo Then
Exit Sub
End If
Application.ScreenUpdating
= False
Worksheets("Timeline").Vis
ible = True
Set rStart = Columns(2).Find("Plan project & write proposal")
Set rEnd = Columns(2).Find("Manage on-going project activities")
If Not rStart Is Nothing And Not rEnd Is Nothing Then
Range(rStart, rEnd).Copy ThisWorkbook.Worksheets("T
imeline").
Range("A10
")
End If
Sheets("Timeline").Select
Range("a10:e300").Select <----(This is where I keep getting the error message)
ActiveWorkbook.Worksheets(
"Timeline"
).Sort.Sor
tFields.Cl
ear
ActiveWorkbook.Worksheets(
"Timeline"
).Sort.Sor
tFields.Ad
d Key:=Range("D10:d300") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(
"Timeline"
).Sort
.SetRange Range("a10:e300")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Worksheets(" Cost Worksheet - Consulting").Visible = False
End Sub
Start Free Trial