You never change the value of strFind because it is outside of your loop, so you will always search for the same word...
Try
Sub SelectVariableRange()
Dim strFind As String
Dim rngFind As Range
Dim i As Integer
Dim count
count = 56
Do Until Range("H" & count) = ""
strFind = Sheets("Instructions").ActiveCell("H" & count).Value
Set rngFind = Sheets("Forecast").Cells.Find(What:=strFind, LookAt:=xlPart)
'check if value is found
Do While Not rngFind Is Nothing
i = 0
Do While rngFind.Offset(0, i + 1) = ""
i = i + 1
Loop
rngFind.Resize(1, i + 1).EntireColumn.Delete Shift:=xlShiftToLeft
Set rngFind = Sheets("Forecast").Cells.Find(What:=strFind, LookAt:=xlPart)
Loop
count = count + 1
Loop
End Sub
Bookmarks