Have tried my suggestion. when you MERELY select a filtered data selection includes the hidden cells also (hidden due to filtering ) instead you must use "specialcells" property as suggested my me. can you modify on that basis.
There is also a provision WITHOUT activating the different windows or selecting diferent ranges.
I have giving alternative for pastespecial portion of your macro
Workbooks("book4").Worksheets("sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues, Paste:=xlPasteColumnWidths, Paste:=xlPasteFormats _
if the two books are saved books you should use "book4.xls" or "book4.xlsm""
thisworkbook means the workbook's module where the macro is parked
can you try to modify the macro .