I'm getting a type mismatch while searching through a cell for a period "." or "p". It worked when I only used the "." but after adding "p" I get a type mismatch. Is a Variant/Empty for my_txt only able to use integers and "."s? I'm trying to have my filter use .'s or p's to determine the outline level.
Sub ProcessDocV5()
Dim Level As Range
Dim i, j, q(1 To 50) As Long
Dim numofchar As Long
Dim filepath As String
Dim filename As String
Dim LastRow As Long
Dim rowcallout As Long
Dim columncallout As Long
'scanf(Input the correct row and column numbers).
rowcallout = InputBox("LOCATION ROW OF HEADERS?")
columncallout = InputBox("LOCATION COLUMN OUTLINE? (A=1, B=2, ect...)")
Debug.Print "rowcallout value is "; [rowcallout]
Debug.Print "columncallout value is "; [columncallout]
'END OF SCAN
'ADJUST EXCEL SCREEN
'stop screen updating
Application.ScreenUpdating = False
'show gridlines
ActiveWindow.DisplayGridlines = True
'remove borders
ActiveWindow.DisplayGridlines = True
Cells.Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
'group according to level column (Cell(row,column))
Set Level = Range(Cells(rowcallout, columncallout), Cells(873, 2))
Debug.Print "The value of Levels is "; Level.Address
For i = rowcallout To Level.count
Cells(i, columncallout).Select
a = Len(Cells(i, columncallout))
Debug.Print "A value is "; [a]
my_txt = Replace(Cells(i, columncallout), "." Or "p", "", 1, -1, vbTextCompare)
b = Len(my_txt)
Debug.Print "B value is "; [b]
numb_occur = a - b + 1
Debug.Print [numb_occur]
If numb_occur < 8 Then
Rows(i).OutlineLevel = numb_occur - 1
Else
Rows(i).OutlineLevel = 8
End If
Next i
With ActiveSheet.Outline
.AutomaticStyles = False
.SummaryRow = xlAbove
.SummaryColumn = xlRight
End With
'Close tabs for neatness
ActiveSheet.Outline.ShowLevels RowLevels:=8
ActiveSheet.Outline.ShowLevels RowLevels:=7
ActiveSheet.Outline.ShowLevels RowLevels:=6
ActiveSheet.Outline.ShowLevels RowLevels:=5
ActiveSheet.Outline.ShowLevels RowLevels:=4
ActiveSheet.Outline.ShowLevels RowLevels:=3
ActiveSheet.Outline.ShowLevels RowLevels:=2
ActiveSheet.Outline.ShowLevels RowLevels:=1
End Sub