vbscript - open and save xlsx as csv file with vscript -


i have script work fine xls, wanted use xlsx. changed extension .xlsx , modified obj.workbook link ,51. doesnt perform open operation i'm not sure i'm missing.

workingdir = "c:\test\excel" savedir="c:\test\"       extension = ".xlsx"  dim fso, myfolder, filecoll, afile, filename, savename dim objexcel, objworkbook  set fso = createobject("scripting.filesystemobject") set myfolder = fso.getfolder(workingdir) set filecoll = myfolder.files  set objexcel = createobject("excel.application")  objexcel.visible = false objexcel.displayalerts = false  each afile in filecoll ext = right(afile.name,4) name= left(afile.name,len(afile.name)-3)         rem changed  if ucase(ext) = ucase(extension) 'open excel filename = left(afile,instrrev(afile,".")) set objworkbook = objexcel.workbooks.open(afile) savename = savedir & name & "csv"            rem changed  objworkbook.saveas savename,51 objworkbook.close  end if next set objworkbook = nothing set objexcel = nothing set myfolder = nothing set filecoll = nothing fso.deletefile(workingdir&"\*"&extension) rem changed set fso = nothing 

@wezel: have following lines generic , same causing issue when there change of extension length varies

old code

ext = right(afile.name,4) name= left(afile.name,len(afile.name)-3) 

revised code

ext = right(afile.name,len(extension)) name= left(afile.name,len(afile.name)-len(extension))  

have code generic 1 below, work situations , need vary first 4 lines according need

modified code

workingdir = "c:\test\excel" savedir="c:\test\"       extension = ".xlsx" neededextension= ".csv" dim fso, myfolder, filecoll, afile, filename, savename dim objexcel, objworkbook  set fso = createobject("scripting.filesystemobject") set myfolder = fso.getfolder(workingdir) set filecoll = myfolder.files  set objexcel = createobject("excel.application")  objexcel.visible = false objexcel.displayalerts = false  each afile in filecoll ext = right(afile.name,len(extension))      rem changed name= left(afile.name,len(afile.name)-len(extension))         rem changed  if ucase(ext) = ucase(extension) 'open excel filename = left(afile,instrrev(afile,".")) set objworkbook = objexcel.workbooks.open(afile) savename = savedir & name & neededextension            rem changed  objworkbook.saveas savename,51 objworkbook.close  end if next set objworkbook = nothing set objexcel = nothing set myfolder = nothing set filecoll = nothing fso.deletefile(workingdir&"\*"&extension) rem changed set fso = nothing 

kindly let me know if fit generic 1 needed


Comments