Deleting pasted HTML controls with Javascript

  • Thread starter Thread starter lisa.liel
  • Start date Start date
L

lisa.liel

Okay, this is an odd problem. I have an export function that copies a
table from HTML and pastes it into an Excel spreadsheet. The problem
is, the table has checkboxes in it, so when I paste, I get shapes in
the spreadsheet. And I want to delete them from the same webpage that
I used to copy the HTML over.

I can run a macro in Excel that says:

For i = ActiveSheet.Shapes.Count To 1 Step -1
ActiveSheet.Shapes(i).Delete
Next i

This works fine. But when I try and do it from Excel, it crashes and
burns:

for (i = objWorksheet.Shapes.Count; i >= 1; i--){
objWorksheet.Shapes(i).Delete;
}

If I do alert(objWorksheet.Shapes(i).Name), it gives me the name of
each object, so I know I'm accessing the objects. I can even set an
object equal to the shape, but when I try and do .Delete, it craps
out.

Has anyone run into something like this? I don't know if it's some
sort of wonky Microsoft security thing, or if someone simply forgot to
include this method when they made the COM wrapper, but it's driving
me nuts. There must be some way to get rid of those things from the
javascript, no?

Thanks in advance,
Lisa
 
Some things not clear:

1. Where is your export function running? How is the HTML copied to XL ?
2. You say "from Excel" but then show javascript code - where is this
running ? Did you mean from outside of XL ?

Maybe:

objWorksheet.Shapes(i).Delete(); // in loop

or just

objWorksheet.Shapes.Delete() //without the loop


Tim
 
The function is a javascript one in a webpage that's an ASP.NET page.
Basically, the ASP creates the table, and the user can click a button
and export the table to an Excel spreadsheet. Then I format the
spreadsheet as I like from the javascript. It works like a charm,
except for the deleting.

But thank you. You actually did solve it for me. My problem was that
I'd used:

objWorksheet.Shapes.Delete;

I should have used:

objWorksheet.Shapes.Delete();

It was the parentheses that did it.

Thanks for your help.

Lisa
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top