wdInDoc.Paragraphs[i].Range.Copy();
wdOutDoc.Paragraphs.Last.Range.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
当被复制的文档中含有表格时,就会报错"此方法或属性无效,因为 对象涉及表格行尾"试了很多办法也不能解决。顺便抱怨一下office的开发文档实在太简单了。

解决方案 »

  1.   

    试下以wdInDoc.Paragraphs[i].Range.Start为Start,以wdInDoc.Paragraphs[i+1].Range.Start为End,重新定义一个Range对象,然后拷贝这个Range。当然表格必须在这个Range的范围内。
      

  2.   

    哎呀,弄出来了,散分啦!rg = wdInDoc.Range(ref Nothing , ref Nothing);
    rg.Copy();
    wdOutDoc.Paragraphs.Last.Range.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
    简单的说就是
    Document.Range.Copy()可以复制表格
    Paragraph.Range.Copy()不可以复制表格再次抱怨MS的Office开发文档,看了等于没看,完全是靠猜
      

  3.   

    晕,你是全文拷贝呀,还废那些事干嘛,我以为你要拷贝固定段落后的表格呢,呵呵!微软的office开发中,对象的特点很明确,有几个常用的对象的集合,比如Paragraphs、Tables等等,Paragraph里面肯定只有段落的对象,Tables里面也肯定只有表格对象,你要单独取某个位置的对象,需要知道其前后的位置,然后重新设置range,再拷贝。当然如果你只需要简单的全文拷贝,那就不用这么麻烦了。
      

  4.   


    这位兄弟,请问如何知道其前后位置,并重新设置range?
    能否贴点代码出来?