As far as I can see you've implemented the Find properly,
It's the code following it that doesn't look right.
For example what are you doing here?
keyRow = keyRow
Advert = (.Cells(keyRow.Row, 14).Value)
That first line is going to set keyRow to a Double variable, but on the next line you try to refer to it as if it's a range.
What is the first line supposed to do?
If I remove every instance of it in the code it runs without error until it reaches this section where the formulas fail as a lot of the variables are empty, some of them haven't been declared either, eg MakeRdy.
.Cells(iRow + 1, 1).Value = Advert
.Cells(iRow + 1, 2).Value = Admin
.Cells(iRow + 1, 3).Value = "=" & Maint & "-" & MakeRdy & "-" & contSvc1 & "-" & contSvc2
.Cells(iRow + 1, 4).Value = MakeRdy
.Cells(iRow + 1, 5).Value = "=" & contSvc1 & "+" & contSvc2
.Cells(iRow + 1, 6).Value = PayRoll
.Cells(iRow + 1, 7).Value = Mgmt
.Cells(iRow + 1, 8).Value = Utl
.Cells(iRow + 1, 9).Value = iNS
.Cells(iRow + 1, 10).Value = "=" & tAX & "-" & iNS
.Cells(iRow + 1, 11).Value = Repairs
.Cells(iRow + 1, 12).Value = Improvements
.Cells(iRow + 1, 14).Value = rev
PS You should add Option Explicit at the top of the code, that should help weed out any undeclared variables.
Bookmarks