excel - Call sub not working the same as running macro by itself -


i have sub works fine when run stand alone macro if call

call selectfolderupdatedata

it not exacte part

selectedfolder = getfolder("c:\users\tim\desktop\sampleco 360\360 macro\360 compiled repository\")

it gos directly

call updateallworkbooks(selectedfolder)

sub selectfolderupdatedata() selectedfolder = getfolder("c:\users\tim\desktop\sampleco 360\360 macro\360 compiled     repository\") call updateallworkbooks(selectedfolder)  end sub 

thanks

edit

here whole thing

sub selectfolderupdatedata() dim fso object dim selectedfolder$ set fso = createobject("scripting.filesystemobject") set selectedfolder = getfolder("c:\users\tim\desktop\sampleco 360\360 macro\360    compiled repository\") call updateallworkbooks(selectedfolder) end sub  function getfolder(strpath string) string dim fldr filedialog dim sitem string     set fldr = application.filedialog(msofiledialogfolderpicker) fldr .title = "select folder" .allowmultiselect = false .initialfilename = strpath if .show <> -1 goto nextcode sitem = .selecteditems(1) end nextcode: getfolder = sitem set fldr = nothing end function   function updateallworkbooks(workdir) dim fso, f, fc, fl dim newname string, appstr string, subdir string on error goto updateallworkbooks_error subdir = workdir & "\" & "convertedfiles" subdir = workdir if not fexists(subdir) mkdir subdir end if application.screenupdating = false set fso = createobject("scripting.filesystemobject") set f = fso.getfolder(workdir) set fc = f.files each fl in fc if right(fl, 5) = ".xlsx" newname = replace(fl, "xlsx", "xls") newname = replace(newname, workdir, subdir) if fexists(newname) appstr = format(now, "hhmmss") & ".xls" newname = replace(newname, ".xls", appstr) end if  application.displayalerts = false  workbooks.open filename:=fl  activeworkbook.saveas filename:=newname, fileformat:=xlexcel8, _     password:="", writerespassword:="", readonlyrecommended:=false, _     createbackup:=false activeworkbook.save activeworkbook.close application.displayalerts = true end if next application.screenupdating = true on error goto 0 exit function updateallworkbooks_error: msgbox "error " & err.number & " (" & err.description & ") in procedure      updateallworkbooks of module module2" end function  function fexists(newname string) boolean dim tester integer on error resume next tester = getattr(newname) select case err.number case = 0     fexists = true case else     fexists = false end select on error goto 0 end function 

then using following call

sub run()     call copysheets     call selectfolderupdatedata     call deletexlxs end sub 

it looks you're working string paths. end, i'm not sure why you're using getfolder method of filesystemobject.

instead, can use string, like:

sub selectfolderupdatedata() dim selectedfolder$  selectedfolder ="c:\users\tim\desktop\sampleco 360\360 macro\360 compiled repository\" call testtoseeifthisworks(selectedfolder) call updateallworkbooks(selectedfolder)   end sub  sub testtoseeifthisworks(workdir string) msgbox workdir end sub 

revision #1 working me (not testing updateallworkbooks yet. remove set set selectedfolder. error because selectedfolder string, not object.

also, not need filesystemobject in subroutine (because not use it).

sub selectfolderupdatedata()  dim selectedfolder$      selectedfolder = getfolder("c:\users\david_zemens\desktop\")     'call updateallworkbooks(selectedfolder) end sub  function getfolder(strpath string) string dim fldr filedialog dim sitem string     set fldr = application.filedialog(msofiledialogfolderpicker) fldr     .title = "select folder"     .allowmultiselect = false     .initialfilename = strpath     if .show <> -1 goto nextcode     sitem = .selecteditems(1) end nextcode: getfolder = sitem set fldr = nothing end function 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -