Try rearanging commands (last row changes after something is copied into the sheet)
Sub find_all_unique()
Dim ws As Worksheet, copylist as long, lastrow as long
For Each ws In Worksheets
If ws.Name <> "Total Quantities" Then
copylist = ws.Cells(Rows.Count, "B").End(xlUp).Row 'note ws. - you want to look in ws sheet
LastRow = Sheets("Total Quantities").Cells(Rows.Count, "A").End(xlUp).Row
ws.Range("B4:B" & copylist).Copy Destination:=Sheets("Total Quantities").Range("A" & LastRow+1) 'note +1 (and again ws.)
End If
Next ws
'and now dedupe
LastRow = Sheets("Total Quantities").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("Total Quantities").Range("A1:A"&lastrow).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
Bookmarks