we used this VBA code mainly to hide blank rows & unhide non-blank rows, after that the second code sort the rows by a defined column value once the worksheet activated. This process take too much time with this code, could any one help me optimize this code and make it faster? (the worksheet contain an average of 500 rows).
Private Sub Worksheet_Activate()
HideRows
Sortingrisk
End Sub
Sub HideRows()
Dim rRange As Range, rCell As Range
Dim strVal As String
Set rRange = Worksheets(12).Range("A10:A500")
For Each rCell In rRange
strVal = rCell
rCell.EntireRow.Hidden = strVal = vbNullString
Next rCell
End Sub
Sub Sortingrisk()
ActiveWorkbook.Worksheets("Control Implementation Plan").AutoFilter.Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Control Implementation Plan").AutoFilter.Sort. _
SortFields.Add Key:=Range("G10:G1000"), SortOn:=xlSortOnValues, Order:= _
xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Control Implementation Plan").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub