Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Removing multiple sheets in excel automation
Message
From
21/12/2013 08:23:24
 
 
To
21/12/2013 05:38:25
Thomas Ganss (Online)
Main Trend
Frankfurt, Germany
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01590748
Message ID:
01590759
Views:
51
Yes, loop from the highest down.

Or, even more simply, keep deleting the second sheet as long as there is one. (technique has been used, but this code not tested)
Do While owb.Sheets.Count > 1
    mname=owb.Sheets(2).Name
    Wait Window 'removing '+ mname timeout 2
     owb.Sheets(2).Delete
Enddo
>looping from highest # down to first might be more stable...
>
>HTH
>
>thomas
>
>>much cleaner and more logical - thanks borislav.
>>problem now: It gets rid of the furthest two sheets (of a 4 sheet file) then gets stuck in a loop at which point I still have 2 sheets remaining.
>>I can't seem to solve it even adding if clauses - strange behavior - seems to defy your logic.
>>k
>>
>>>>I have set this up to remove all multiple sheets except the first sheet.
>>>>It's not working - any help would be appreciated. thanks
>>>>k
>>>>
>>>>
>>>>lcFile='myfile.xlsx'
>>>>Erase (Forceext(lcFile,'xxx'))
>>>>ox=Createobject('excel.application')
>>>>owb=ox.Workbooks.Open(lcFile)
>>>>
>>>>If owb.Sheets.Count > 1
>>>>	Nu= owb.Sheets.Count
>>>>	ms=1
>>>>	Do While ms < Nu+1
>>>>		mname=owb.Sheets(m1).Name
>>>>		If ms>1
>>>>			Wait Window 'removing '+ mname timeout 2
>>>>			owb.Sheets(mname).Delete
>>>>		Endif
>>>>		ms=ms+1
>>>>	Enddo
>>>>Endif
>>>>ox.Visible=.T.
>>>>
>>>
>>>
>>>lcFile='myfile.xlsx'
>>>ox=Createobject('excel.application')
>>>owb=ox.Workbooks.Open(lcFile)
>>>
>>>If owb.Sheets.Count > 1
>>>    Nu= owb.Sheets.Count
>>>    Do While Nu > 1
>>>        mname=owb.Sheets(Nu).Name
>>>        Wait Window 'removing '+ mname timeout 2
>>>        owb.Sheets(mname).Delete
>>>        Nu= owb.Sheets.Count
>>>    Enddo
>>>Endif
>>>ox.Visible=.T.
>>>
Jim Nelson
Newbury Park, CA
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform