excel - Paste Run Time Error 1004 -


i trying copy set of filtered data 1 sheet bottom of sheet. , code works great except first time upon opening file a:

run time error 1004

if quit debugger , re-run macro works great.
here code: noted problem occurs.

sub movedata_click()     'select filtered alarm data , paste on master spreadsheet     sheets("dailygen").select     activesheet.usedrange.offset(5, 0).specialcells _         (xlcelltypevisible).copy      sheets("2015 master").select      if activeworkbook.activesheet.filtermode _     or activeworkbook.activesheet.autofiltermode         activeworkbook.activesheet.showalldata     end if      range("c4").select     selection.end(xldown).select     activecell.offset(1, -2).range("a1").select     activesheet.paste '~~> errors      'sort newest oldest in date column      activeworkbook.worksheets("2015 master").listobjects("table44").sort.sortfields.clear     activeworkbook.worksheets("2015 master").listobjects("table44").sort.sortfields.add _         key:=range("table44[[#all],[active time]]"), _         sorton:=xlsortonvalues,          order:=xldescending, dataoption:=xlsortnormal     activeworkbook.worksheets("2015 master").listobjects("table44").sort        .header = xlyes        .matchcase = false        .orientation = xltoptobottom        .sortmethod = xlpinyin        .apply     end end sub 

when showalldata (same data->clear in filter section) emptying clipboard , telling excel forget copied range. outside of vba confirm if want. excel loves empty clipboard when edit cell or of other selecting.

to fix, copy after showalldata. in case, have select worksheet , forth.

you should work avoid using select , activate vba. see post details.

here final code changes made:

sub movedata_click()  'select filtered alarm data , paste on master spreadsheet  sheets("2015 master").select if activeworkbook.activesheet.filtermode or activeworkbook.activesheet.autofiltermode activeworkbook.activesheet.showalldata end if  sheets("dailygen").select activesheet.usedrange.offset(5, 0).specialcells _     (xlcelltypevisible).copy  sheets("2015 master").select range("c4").select selection.end(xldown).select activecell.offset(1, -2).range("a1").select activesheet.paste   'sort newest oldest in date column  activeworkbook.worksheets("2015 master").listobjects("table44").sort.sortfields.clear     activeworkbook.worksheets("2015 master").listobjects("table44").sort.sortfields.add _     key:=range("table44[[#all],[active time]]"), sorton:=xlsortonvalues, order _      :=xldescending, dataoption:=xlsortnormal activeworkbook.worksheets("2015 master").listobjects("table44").sort    .header = xlyes    .matchcase = false    .orientation = xltoptobottom    .sortmethod = xlpinyin    .apply end  end sub 

Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -