Sub InputTopic()
Dim LastRow As Long, LastCol As Long, LastColLetter As String
Dim VerseArray() As Variant, i As Long
Dim SourceWS As Worksheet, Topic As String, ws As Worksheet
Topic = InputBox("Enter Topic or Word to search for...")
'Check If Sheet Already Exists
For Each ws In ThisWorkbook.Worksheets
If InStr(1, ws.Name, Topic, vbTextCompare) <> 0 Then GoTo errorhandler:
Next ws
Sheets.Add(After:=Sheets(Sheets.count)).Name = Topic
Columns("A:A").ColumnWidth = 100 'Columns.AutoFit
Columns("A:A").WrapText = True
Columns("B:B").ColumnWidth = 10
Set SourceWS = Sheets("PROVERBS")
SourceWS.Activate
LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.count 'FIND # of LAST Row w/ DATA
LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Columns.count 'FIND # of LAST Column w/ DATA
LastColLetter = Split(Cells(1, LastCol).Address, "$")(1) 'CHANGE # to Actual LETTER of COLUMN
VerseArray = Range("A1:" & LastColLetter & LastRow) 'inputs data automatically into array
x = 0
For i = LBound(VerseArray, 1) To UBound(VerseArray, 1)
If InStr(1, VerseArray(i, 1), Topic, vbTextCompare) <> 0 Then
x = x + 1: Sheets(Topic).Select
Sheets(Topic).Range("A" & x).Value = VerseArray(i, 1)
Sheets(Topic).Range("B" & x).Value = VerseArray(i, 2)
End If
Next i
For k = Sheets.count To 5 Step -1
Application.DisplayAlerts = False
If Sheets(k).Range("A1").Value = 0 Then Sheets(k).Delete
Application.DisplayAlerts = True
Next k
Sheets("Input Topic").Activate
Exit Sub
errorhandler: Sheets("Input Topic").Select: _
MsgBox ("That TOPIC or Worksheet already exists... click <OK> and choose another.")
End Sub