Excel VBA activate worksheet -
i need activate specific worksheet. code meant create worksheets specif name. need paste worksheet these newly created worksheets. code i'm using below. i'm having hard time activating newly created worksheet paste want.
sub octo() 'dim ws worksheet dim ki range dim listsh range workbooks.open ("c:\users\dash\dropbox\randika\misc\emmash timesheets\timesheet.xlsx") worksheets("ppe 05-17-15") set listsh = .range("b4:b" & .cells(.rows.count, "b").end(xlup).row) end on error resume next each ki in listsh if len(trim(ki.value)) > 0 if len(worksheets(ki.value).name) = 0 worksheets.add(after:=worksheets(worksheets.count)).name = ki.value 'open template workbooks.open ("c:\users\dash\dropbox\randika\misc\emmash timesheets\octo_template.xls") range("a1:l31").select selection.copy worksheets(ki.value).activate if thisworkbook.saved = false thisworkbook.save end if end if end if next ki end sub
i think need.
been mentioned chris, there no need activate or select. hope following code solve problem.
option explicit dim mytemplateworkbook workbook dim mydataworkbook workbook dim mytemplateworksheet worksheet dim mydataworksheet worksheet dim mynewdataworksheet worksheet dim currentrange range dim listrange range sub addwsandgetdata() set mytemplateworkbook = workbooks.open("c:\users\lengkgan\desktop\testing\mytemplate.xlsx") set mytemplateworksheet = mytemplateworkbook.sheets("template") set mydataworkbook = workbooks.open("c:\users\lengkgan\desktop\testing\mydata1.xlsx") set mydataworksheet = mydataworkbook.sheets("ppe 05-17-15") set listrange = mydataworksheet.range("b4:b" & mydataworksheet.cells(rows.count, "b").end(xlup).row) application.screenupdating = false on error resume next each currentrange in listrange if len(trim(currentrange.value)) > 0 if len(mydataworksheet(currentrange.value).name) = 0 worksheets.add(after:=worksheets(worksheets.count)).name = currentrange.value set mynewdataworksheet = mydataworkbook.sheets(activesheet.name) mynewdataworksheet.range("a1:l31").value = mytemplateworksheet.range("a1:l31").value if mydataworkbook.saved = false mydataworkbook.save end if end if end if next currentrange mytemplateworkbook.close (false) 'close template without saving end sub
Comments
Post a Comment