View Single Post
  #6   Report Post  
Posted to microsoft.public.word.tables
Greg Maxey
 
Posts: n/a
Default A Bug I Think in Word 2000

Jezebel,

I forgot, I already tried that and it works fine:

Sub Test3()
Dim MyData As DataObject
Dim myString As String
Dim tbl As Word.Table
Dim cel As Word.Cell
Dim rng As Word.Range

Set MyData = New DataObject
MyData.GetFromClipboard
myString = MyData.GetText
Set tbl = ActiveDocument.Tables(1)
For Each cel In tbl.Range.Cells
Set rng = cel.Range
rng.MoveEnd wdCharacter, -1
rng.InsertAfter myString
Next
End Sub



Any thoughts on why it happens? I mean I know it happens because smart cut
and paste is enabled, but why do you suppose that is?


--
Greg Maxey/Word MVP
See:
http://gregmaxey.mvps.org/word_tips.htm
For some helpful tips using Word.


Jezebel wrote:
You're right, I didn't notice that. As for a workaround: perhaps
instead of collapsing the cell range and pasting, try using
Range.InsertAfter ?




"Greg Maxey" wrote in message
...
Jezebel,

I don't know if you noticed the complete subject, but the error only
occurs in Word2000(well I don't know about Word97, or 2002). It
doesn't occur in Word2003.

When ToolsOptionEditSmart cut and paste is checked the error
occurs if I select and copy a complete word or phrase to the
clipboard. It doesn't occur if I select and copy the middle part of
a word, the tail end of a word, or a complete word including a
leading space. If ToolsOptionsEditSmart cut and paste is uncheck, then
the error
doesn't occur.

I have only tested on my Word2000 machine at work, so the problem
could be isolated to that machine.

Cheers.


--
Greg Maxey/Word MVP
See:
http://gregmaxey.mvps.org/word_tips.htm
For some helpful tips using Word.

"Jezebel" wrote in message
...
Must be something more to it, Greg. I tried it exactly as you
describe and can't create the problem. What are your Smart cut and
paste settings? "Greg" wrote in message
oups.com...
Enter a simple table and add a bit of text to a few cells.

Put a check in: ToolOptionsEditUse smart cut and paste

Type a few words after the table and copy it to the clipboard.

Now run:

Sub Test()
Dim tbl As Word.Table
Dim cel As Word.Cell
Dim rng As Word.Range
Set tbl = ActiveDocument.Tables(1)
For Each cel In tbl.Range.Cells
Set rng = cel.Range
rng.MoveEnd wdCharacter, -1
rng.Collapse wdCollapseEnd
rng.Paste
Next
End Sub


This has interesting results.
1. If you selected and copied a complete word or phrase (without
the leading space). The result is the text is pasted to all cells
as expected, but a run time error is generated.

Run Time Error '5825' Object has been deleted. :-(

2. If you copied only part of a word or a word/phase including a
leading
space, all is well.

I have discovered that the cause of this behaviour is
ToolsOptionsEditUse smart cut and paste. With that option off,
the procedure works as expected with no run time error. That is
the cause, but I don't really understand the why.

I suppose that knowing this you could use an error handler:

Sub Test()
Dim tbl As Word.Table
Dim cel As Word.Cell
Dim rng As Word.Range
Set tbl = ActiveDocument.Tables(1)
On Error GoTo Handler
For Each cel In tbl.Range.Cells
Set rng = cel.Range
rng.MoveEnd wdCharacter, -1
rng.Collapse wdCollapseEnd
rng.Paste
Next
Exit Sub
Handler:
End Sub

Does anyone know if this bug, as I have called it, is documented,
why it happends, or a more appropriate workaround?

Thanks.