Sub InputTopic()
Dim LastRow As Long, LastCol As Long, LastColLetter As String
Dim VerseArray() As Variant, i As Long, x As Long, k As Long
Dim SourceWS As Worksheet, Topic As String, ws As Worksheet
Dim arr2
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
ReDim arr2(1 To LastRow, 1 To LastCol)
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
arr2(x, 1) = VerseArray(i, 1)
arr2(x, 2) = VerseArray(i, 2)
End If
Next i
Worksheets(Topic).Range("A1").Resize(UBound(arr2, 1), UBound(arr2, 2)) = arr2
End Sub