I'm trying to write a macro that searches for the string " Total" in a column of text and once it finds that text, replaces it with "" and performs a variety of functions around that cell including adding rows above and below and formatting cells around it before searching for the next iteration of " Total". The code works fine until there are no more instances of " Total" to be found, at which point the macro stops and I receive the error "Run-time error '91': Object variable or With block variable not set."

I've searched online for a solution to why this isn't working in my macro, but can't find the right combination of code to make my macro work. The pertinent part of my code is below. (The lines showing just a period are used to dramatically shorten the code.)

Sub EmployerSummariesAddedForRegionsOnTabs()
'
Dim FoundCell As Range, LastCell As Range
Dim FirstAddr As String

With Range("D3:D3000")
Range("D3").Select
Set LastCell = .Cells(.Cells.Count)
End With

Set FoundCell = Range("D1:D3000").Find(What:=" Total", After:=LastCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

If Not FoundCell Is Nothing Then
FirstAddr = FoundCell.Address
End If
Do Until FoundCell Is Nothing
Set FoundCell = Range("D1:D3000").FindNext(After:=FoundCell)
COLUMNS("D:D").Select
Selection.Find(What:=" Total", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Replace What:="Total", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveCell.Rows("1:1").EntireRow.Select
ActiveCell.Activate
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
.
.
.
If FoundCell.Address = FirstAddr Then
Exit Do
End If
Loop
Range("A1").Select
End Sub