Thanks Bernie. It is a string and I'm still getting the error. I've
pasted the entire Sub below. Thanks for helping me.
Sub CategoryResortAndFormat(worksheetname As String, sortCategoryName
As String, sortCategoryCell As String, sortColumn1 As String,
sortColumn2 As String, greenBarColumn As String)
Dim sortCategoryNameExpanded As String
Dim i As Long
Dim startcell As String
Dim endCell As String
Dim greenBar As Integer
Dim rowOffset As Integer
' expand sortCategoryName
sortCategoryNameExpanded = sortCategoryName
For i = 1 To (Len(sortCategoryNameExpanded) - 1) * 2 Step 2
sortCategoryNameExpanded = Left(sortCategoryNameExpanded, i) +
" " + Mid(sortCategoryNameExpanded, i + 1)
Next i
' begin search for sortCategoryName
For i = 0 To 65000
If Worksheets(worksheetname).Range(sortCategoryCell). Offset(i,
0).Value = sortCategoryNameExpanded Then
startcell =
Worksheets(worksheetname).Range(sortCategoryCell). Offset(i, 0).Address
Exit For
End If
Next i
' continue search looking for "TOTAL " & sortCategoryName
For i = 0 To 65000
If Worksheets(worksheetname).Range(sortCategoryCell). Offset(i,
0).Value = "TOTAL " & sortCategoryName Then
endCell =
Worksheets(worksheetname).Range(sortCategoryCell). Offset(i, 0).Address
Exit For
End If
Next i
' establish the upper left and lower right corners of sort area
' perform resort of category
startCell = Worksheets(worksheetname).Cells(Range(startCell).R ow + 2,
1).Address
endCell = Worksheets(worksheetname).Range(greenBarColumn &
CStr(Range(endCell).Row - 1)).Address
Worksheets(worksheetname).Range(startcell & ":" & endCell).Sort _
Key1:=Worksheets(worksheetname).Range(sortColumn1) , _
Order1:=xlAscending, _
Key2:=Worksheets(worksheetname).Range(sortColumn2) , _
Order2:=xlAscending, _
Header:=xlNo, _
MatchCase:=False, _
Orientation:=xlTopToBottom
' add green bar to alternating rows - toggling greenBar variable
greenBar = 1
rowOffset = 0
While Range(startcell).Row + rowOffset <= Range(endCell).Row
If greenBar = 1 Then
With Worksheets(worksheetname).Range("A" &
CStr(Range(startcell).Row + rowOffset) & ":" & greenBarColumn &
CStr(Range(startcell).Row + rowOffset)).Interior
..ColorIndex = 40
..Pattern = xlSolid
..PatternColorIndex = 2
End With
Else
With Worksheets(worksheetname).Range("A" &
CStr(Range(startcell).Row + rowOffset) & ":" & greenBarColumn &
CStr(Range(startcell).Row + rowOffset)).Interior
..ColorIndex = xlNone
End With
End If
rowOffset = rowOffset + 1
greenBar = (greenBar + 1) Mod 2
Wend
End Sub
[/
vb]
--
bjwade62
------------------------------------------------------------------------
bjwade62's Profile:
http://www.excelforum.com/member.php...o&userid=37186
View this thread:
http://www.excelforum.com/showthread...hreadid=568955